我们有一个Configuration
类和LocalStorage
类Configuration在构造函数中使用LocalStorage实例,LocalStorage在构造函数中使用Context
。我们只是尝试从UI测试开始。我们正在尝试这样做
private val localStorage = Mockito.mock(LocalStorage::class.java)
// in our setup method
Mockito.`when`(localStorage.getString(anyString())).thenReturn(str)
这里的问题是getString()
方法调用在运行测试时立即开始发生。我们甚至还没有编写实际测试。
Mockito Android版本:3.1.0
我认为在UI测试期间,在模拟最终Kotlin类中可能出了什么问题。看起来您在Mockito中使用插件来“打开”类。
可能的解决方案:
您是否考虑过使用替代方法?
[doReturn(str).
何时(localStorage).getString(anyString())
((需要导入:import org.mockito.Mockito.doReturn)] >>
问题是LocalStorage
正在由我们的Application类初始化。如果先前已经初始化依赖项,则Mock
失败。解决方案是用TestApplication
创建一个CustomAndroidJUnitRunner
。确保没有预先初始化依赖项,而仅根据各个测试的要求来初始化依赖项。