我们目前有一个仅由常量值组成的对象。
object Constants {
const val VERSION = V1
}
Run Code Online (Sandbox Code Playgroud)
然而,这些常量的值将来可能会改变。因此,我想确保如果该值不满足某些条件,测试就会中断VERSION。我们使用 Mockk 进行模拟,所以我尝试Constants根据这样的文档来模拟对象
mockkObject(Constants)
every { Constants.VERSION } returns -1
assertThat(Constants.VERSION).isEqualTo(-1)
Run Code Online (Sandbox Code Playgroud)
不幸的是,这不会编译并出现以下错误:io.mockk.MockKException: Missing calls inside every { ... } block.
有没有办法模拟常量值?或者我应该为常量提供 getter 方法并模拟它们?
kotlin 中的常量没有吸气剂,这就是您的异常背后的原因:io.mockk.MockKException: Missing calls inside every { ... } block。没有可以模拟来检索值的函数。
我建议您重新考虑测试常量的目标(这不是典型的测试用例),或者制定解决方法。解决方法可能是:
Constants另一个类中,该类将返回Constants对象,您可以测试每个字段(使用assertJ fieldByField)| 归档时间: |
|
| 查看次数: |
5478 次 |
| 最近记录: |