如何模拟应用程序 class 以对 ViewModel 进行单元测试

How to mock Application class to unit test ViewModel

我有一个 View Model 扩展 AndroidViewModel

class MoveViewModel(application: Application): AndroidViewModel(application),CoroutineScope{
    ....
}

我想对其进行单元测试,但我不知道如何模拟应用程序 class

@Test
    fun testSearchDataValidation() {
        val application = Mockito.mock(Application::class.java)
        val viewModel = MoveViewModel(application)

        .....
    }

但是当我去 运行 测试时我得到一个错误 Mockito 不能 mock Application

org.mockito.exceptions.base.MockitoException: Mockito cannot mock this class: class android.app.Application.

Mockito can only mock non-private & non-final classes.

如何模拟应用程序 class 以将其传递给我的视图模型?

编辑:

这是@farhanjk 建议的我的文件夹层次结构

Mockito.mock(Application::class.java)

在您的 test 文件夹中,创建如下层次结构:

org.mockito.plugins.MockMaker文件中,只放一行文本mock-maker-inline

Mock the unmockable: opt-in mocking of final classes/methods