问题描述
Android 单元测试使用 Mockk 时,声明依赖时使用符号有什么区别?
class Test {
private val x: X = mockk()
private val test = TestClass(x)
...
}
或
class Test {
@MockK
private lateinit var x: X
@InjectMockKs
private lateinit var test: TestClass
@Before
fun setup() {
MockKAnnotations.init(this)
}
...
}
解决方法
没有,这两种实现没有区别,它们是等价的。
一般来说,当您需要在代码中动态声明模拟时,或者如果您需要,例如,只需要一个模拟来放松其单元功能(在这种情况下,您可以使用mockk(relaxUnitFun = true).
如果您的模拟具有相同的行为,您可以使用注释版本。