lupuuss / Mokkery

The mocking library for Kotlin Multiplatform, easy to use, boilerplate-free and compiler plugin driven.
https://mokkery.dev
Apache License 2.0
201 stars 8 forks source link
ir k2 kmp kotlin kotlin-compiler-plugin kotlin-multiplatform kotlin-multiplatform-mobile mock test
Mokkery



Gradle Plugin Portal Stable Kotlin GitHub Docs

The mocking library for Kotlin Multiplatform, easy to use, boilerplate-free and compiler plugin driven.

class BookServiceTest {

    val repository = mock<BookRepository> {
        everySuspend { findById(any()) } calls { (id: String) -> Book(id) }
    }
    val service = BookService(repository)

    @Test
    fun `rent should call repository for each book`() = runTest {
        service.rentAll(listOf("1", "2"))
        verifySuspend(exhaustiveOrder) {
            repository.findById("1")
            repository.findById("2")
        }
    }
}

As shown in the example above, this library is highly inspired by the MockK. If you have any experience with MockK, it should be easy to start with Mokkery!

Documentation is available here!