PS: コードは Koltin になります
たとえば、何かを実行して他のサービスを注入するサービス クラスがあります。
class MyService(
private val someOtherService: OtherService
) {
fun doSomething() {
someOtherService.someMethod("foo")
someOtherService.someMethod("bar")
someOtherService.someMethod("baz")
}
}
これは、OtherService をモックする MyService クラスに対する私のテストです。
internal class MyServiceTest {
@MockkBean(relaxed = true)
private lateinit var someOtherService: OtherService
@Test
fun `my test description`() {
every { someOtherService.someMethod(any()) } just Runs
verify(exactly = 1) {
someOtherService.someMethod(
match {
it shouldBe "bar"
true
}
)
}
}
その結果、"bar"
パラメーターが期待されますが、"foo"
代わりにパラメーターになり、テストは失敗します。
理由:のsomeOtherService.someMethod("foo")
前に呼び出されsomeOtherService.someMethod("bar")
ます。
ただし、すべてのメソッドが 1 回だけ呼び出されたことを確認したいと思います。どうすればそれができますか?