@MockK 或mockk()

Can*_*ato 5 android unit-testing mockk

使用Mockk进行Android单元测试时,声明依赖项时使用符号有什么区别吗?

class Test {
    private val x: X = mockk()

    private val test = TestClass(x)
...
}
Run Code Online (Sandbox Code Playgroud)

或者

class Test {
    @MockK
    private lateinit var x: X

    @InjectMockKs
    private lateinit var test: TestClass
    
    @Before
    fun setup() {
        MockKAnnotations.init(this)
    }
...
}
Run Code Online (Sandbox Code Playgroud)

Can*_*ato 6

来自MockK 项目

不,这两种实现之间没有区别,它们是等效的。

一般来说,当您需要在代码中动态声明模拟时,或者如果您只需要一个模拟来放松其单元功能(在这种情况下,您可以使用mockk(relaxUnitFun)构建它,您可以使用mock() =真)。

如果您的模拟具有所有相同的行为,您可以使用注释版本。