mockkのverifyでメソッドの引数の中身をチェックする

下のようなコードでUseCaseSaveのテストでrepo.saveに意図した値が入っているかを確認したいようなケース

data class Data(
    val target: Int
    val timestamp: Date = Date()
)

class UseCaseSave(val repo: Repo) {
    fun execute(num: Int) {
        repo.save(Data(num))
    }
}

matcherを自前で用意することで対応が可能。 ​

@Test
fun test_hoge() {
    val repo = mockk()
    val useCase = UseCaseSave(repo)

    useCase.execute(1)

    verify {
        repo.save(match { date -> date.target == 1 })
    }
}