同じモックオブジェクトに対して複数のコマンドをチェックできるように検証を拡張したいのですが、動作していません。コンパイルしますが、実行時に各コマンドを同じオブジェクトに対して実行しません。
次のようなことをもっと書くのは避けたいだけです:
Mockito.verify(mockedView).initViews()
Mockito.verify(mockedView).setImage(user.photoUrl)
そして次のように書きます:
Mockito.verify(mockedView){
initViews()
setImage(user.photoUrl)
}
初挑戦:
@Test
fun onCreate_loadLoginInfo() {
val user = MockUser.user()
presenter.onCreate(mockedView, user)
Mockito.myVerify(mockedView) {
initViews()
setImage(user.photoUrl)
setName(user.name)
setEmail(user.email)
}
}
class Mockito {
companion object
}
fun <T> Mockito.Companion.myVerify(obj: T, func: T.() -> Unit) {
org.mockito.Mockito.verify(obj).func()
}
2 回目の試行:
@Test
fun onCreate_loadLoginInfo() {
val user = MockUser.user()
presenter.onCreate(mockedView, user)
Mockito.myVerify(mockedView) {
it.initViews()
it.setImage(user.photoUrl)
it.setName(user.name)
it.setEmail(user.email)
}
}
class Mockito {
companion object
}
fun <T> Mockito.Companion.myVerify(obj: T, func: (T) -> Unit) {
val mock = org.mockito.Mockito.verify(obj)
func(mock)
}
しかし、それらは機能していません。プレゼンターでメソッドを呼び出さなくても、すべてのテストに合格します。どうすればよいですか?