我们用Java和Mockito进行了一些测试,我们正在逐步将它们转换为Kotlin和Mockk.不过,这有个问题.下面这行简单:

verify(mockedInteractor).setIndex(1);

When we move it to mockk, we get this:

verify { mockedInteractor.index = 1 }

这当然通过了测试,因为它实际上并没有判断index是否设置为1.只需将mock的变量设置为1.下面这一点也有同样的效果.

verify { mockedInteractor.setIndex(1) }

Is there a way to verify setters?

推荐答案

You could try capture:

val fooSlot = slot<String>()
val mockBar = mockk<Bar>()
every { mockBar.foo = capture(fooSlot) } answers { }
assertEquals(fooSlot.captured, "expected")

Kotlin相关问答推荐

用普通Kotlin理解Gradle的Kotlin DSL'""

kotlin短路列表判断吗?

Kotlin中反射中Int到可空Double的隐式转换失败

列表在 android WebView 中没有正确迭代

在 detekt 配置文件中找不到某些属性

在 Kotlin 中,为什么在 `+` 之前但在 `.` 之前没有换行符?

顶级属性的初始化

KMM:编译失败:意外的 IrType 类型:KIND_NOT_SET

如何从 kotlin 中的数据类访问 val?

将子元素放在一个列表中

类型是什么意

如何使用 gradle 脚本 Kotlin 构建文件构建可运行的 ShadowJar?

Kotlin 中的数据类

Kotlin 是如何编译的?

如何在顶级函数中使用 koin 注入依赖项

为什么 Dialog 没有 NavController [Missing]?

Kotlin中的下划线名称是为什么保留的?

在Kotlin中使用@Service时引发异常

在kotlin中初始化类变量的正确位置是什么

具有泛型param的Kotlin抽象类和使用类型param的方法