Initial commit 
18 files changed
tree: 1e5b55cd77d9b3a38bd099c1d93a350e174019a8
  1. gradle/
  2. mockito-kotlin/
  3. .gitignore
  4. .travis.yml
  5. build.gradle
  6. gradlew
  7. gradlew.bat
  8. LICENSE
  9. README.md
  10. settings.gradle
README.md

Mockito-Kotlin

A small library that provides helper functions to work with Mockito in Kotlin.

Download

Download a .jar file from the releases page.

Examples

Creating mock instances

Due to Kotlin‘s reified type parameters, if the type can be inferred, you don’t have to specify it explicitly:

Java:

MyClass c = mock(Myclass.class); c.doSomething(mock(MyOtherClass.class)); 

Kotlin:

val c : MyClass = mock() c.doSomething(mock()) 

If the type can't be inferred, you can pass it like so:

val d = mock<MyClass>() 

Expecting any value

Mockito‘s any(Class<T>) often returns null for non-primitive classes. In Kotlin, this can be a problem due to its null-safety feature. This library creates non-null instances when necessary. Again, if the type can be inferred, you don’t have to specify it explicitely:

Java:

verify(myClass).doSomething(any(String.class)); 

Kotlin:

verify(myClass).doSomething(any()); // Non-nullable parameter type is inferred 

For generic arrays, use the anyArray() method:

verify(myClass).setItems(anyArray()) 

Argument Matchers

Using higher-order functions, you can write very clear expectations about expected values. For example:

Kotlin:

verify(myClass).setItems(argThat{ size == 2 }) 

Convenience functions

Most of Mockito‘s static functions are available as top-level functions. That means, IDE’s like IntelliJ can easily import and autocomplete them, saving you the hassle of manually importing them.