我有一个 View Model
扩展 AndroidViewModel
class MoveViewModel(application: Application): AndroidViewModel(application),CoroutineScope{
....
}
我想对它进行单元测试,但我不知道如何模拟应用程序类
@Test
fun testSearchDataValidation() {
val application = Mockito.mock(Application::class.java)
val viewModel = MoveViewModel(application)
.....
}
但是当我去运行测试时,我得到一个错误
Mockito
无法模拟 Application
org.mockito.exceptions.base.MockitoException: Mockito cannot mock this class: class android.app.Application.
Mockito can only mock non-private & non-final classes.
如何模拟 Application 类以将其传递给我的 View 模型?
编辑:
这是@farhanjk 建议的我的文件夹层次结构
最佳答案
Mockito.mock(Application::class.java)
在您的 test
文件夹,创建如下层次结构:
在 org.mockito.plugins.MockMaker
文件,只需输入一行文本 mock-maker-inline
.
Mock the unmockable: opt-in mocking of final classes/methods
关于android - 如何模拟应用程序类来单元测试 ViewModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55599337/