Kluent
Kluent is a "Fluent Assertions" library written specifically for Kotlin.
It uses the Infix-Notations and Extension Functions of Kotlin to provide a fluent wrapper around the JUnit-Asserts and Mockito.
Platform | Status |
---|---|
MacOs / Linux | |
Windows |
Changelog
Documentation
Include it via gradle/maven
Kluent is hosted here at jcenter
Kluent-Android is hosted here at jcenter
Gradle
Replace {version} with the current version
// Add jcenter as a repository for dependencies
repositories {
jcenter()
}
dependencies {
testImplementation 'org.amshove.kluent:kluent:{version}'
// for Android:
testImplementation 'org.amshove.kluent:kluent-android:{version}'
}
Maven
Replace {version} with the current version
<!-- Add jcenter as a repository for dependencies -->
<repositories>
<repository>
<id>jcenter</id>
<url>https://jcenter.bintray.com/</url>
</repository>
</repositories>
<dependency>
<groupId>org.amshove.kluent</groupId>
<artifactId>kluent</artifactId>
<version>{version}</version>
<type>pom</type>
</dependency>
Examples
More examples can be seen on the Site or in the tests.
assertEquals
"hello" shouldEqual "hello"
assertNotEquals
"hello" shouldNotEqual "world"
Assert that an Array/Iterable contains something
val alice = Person("Alice", "Bob")
val jon = Person("Jon", "Doe")
val list = listOf(alice, jon)
list shouldContain jon
Stubbing
val stub = mock(Database::class)
val bob = Person("Bob", "Guy")
When calling stub.getPerson() itReturns bob
Using backticks
Every method that is included in Kluent also has a "backtick version", to make it feel more like a describing sentence.
Some examples:
assertEquals
"hello" `should equal` "hello"
assertNotEquals
"hello" `should not equal` "world"