我有一个View Model
扩展了AndroidViewModel
class MoveViewModel(application: Application): AndroidViewModel(application),CoroutineScope{
....
}
我想对其进行单元测试,但是我无法弄清楚如何模拟Application类
@Test
fun testSearchDataValidation() {
val application = Mockito.mock(Application::class.java)
val viewModel = MoveViewModel(application)
.....
}
但是当我去运行测试时,我得到一个错误,Mockito
无法模拟Application
org.mockito.exceptions.base.MockitoException:Mockito无法模拟此 class:android.app.Application类。
Mockito只能模拟非私有和非最终类。
如何模拟Application类以将其传递给我的视图模型?
编辑:
这是@farhanjk建议的文件夹层次结构
答案 0 :(得分:0)
Mockito.mock(Application::class.java)
在您的test
文件夹中,创建如下所示的层次结构:
在org.mockito.plugins.MockMaker
文件中,只需输入一个单行文本mock-maker-inline
。
Mock the unmockable: opt-in mocking of final classes/methods