driver733 / assertk-core

A Kotlin-friendly wrapper for AssertJ

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Build Status GitHub license codecov

AssertK - Fluent assertions for Kotlin

AssertK provides a Kotlin-friendly syntax for using the amazing AssertJ assertion framework.

###Simple assertions

assert that Unit isEqualTo Unit

you can use assert that or expect that interchangeably as assert tends to be a bit noisy when trying to autocomplete the statement.

expect that Any() isNotEqualTo Any()
expect that Any() _is notNull
expect that nullObject _is null
expect that anObject isInstance of<Any>()
expect that Any() describedAs "A labeled object" isInstance of<Unit>()

###Chained syntax

expect that Unit isNotEqualTo Any() isEqualTo Unit _is notNull isInstance of<Any>()

###Block syntax

expect that Any() isSuchThat {
    it _is notNull
    it isInstance of<Any>()
    it isNotEqualTo Unit
    it isNotEqualTo Any()
}

##Assertions on exceptions ###Chained syntax

expect thatExceptionIsThrownBy { failFunction() } hasMessageContaining "foo" hasCause Throwable()

###Block syntax

expect thatExceptionIsThrownBy {
    throw Throwable("exception foo", Throwable())
} and {
    it hasMessage "exception foo"
    it hasCause Throwable()
    it hasCauseExactlyInstanceOf Throwable::class.java
    it hasMessageContaining "foo"
    it hasMessageStartingWith "ex"
    it hasMessageEndingWith "foo"
}

#Further Examples ##Iterable Assert

expect that myListOfInts hasSize 10 contains 3 startsWith 1

##Boolean Assert

expect that myBoolean _is false

##Float, Double, Int, Long Assert

expect that myFloat isGreaterThan otherFloat
expect that myInt _is notPositive isLessThan expectedResult

##Get it

allprojects {
    repositories {
        ...
        maven { url "https://jitpack.io" }
    }
}
dependencies {
    ...
    testCompile 'com.github.memoizr:assertk-core:0.1.0'
    ...
}

####License Copyright 2016 memoizr

Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.

About

A Kotlin-friendly wrapper for AssertJ

License:Apache License 2.0


Languages

Language:Kotlin 100.0%