5

我知道这个问题被问了很多时间,但是我遵循了很多答案,但仍然没有用

如何用 mockito 模拟最后一堂课

在这个链接中,他们说我们必须添加我们的 gradle :

testImplementation 'org.mockito:mockito-inline:2.13.0'

=> 目前我有

testImplementation "org.mockito:mockito-inline:2.28.2"

我的 MockMaker 文件中也有这一行:

mock-maker-inline

然后你可以看到我的以下代码:

object ApiHelper {

fun <T> createService(
        url: String,
        clazz: Class<T>
    ): T
}

在我的 UITEST

    @Mock
    private lateinit var service: myService

    private lateinit var apiHelper: ApiHelper

    @Before
    fun setUp() {

        apiHelper = mock(ApiHelper::class.java)

        given(ApiHelper.createService(
            anyString(),
            MyService::class.java,
        )).willReturn(service)
    }

我的代码有什么问题?我错过了什么吗?

4

2 回答 2

5

Kotlin 的模拟库http://mockk.io

我之前也用过mockito,写的时候问题很多。

相反,mock 功能强大,它使您的测试更容易编写和

对象模拟仅适用于您的情况

于 2020-01-03T11:08:58.480 回答
3

不幸的是,这种模拟最终类的方法不适用于 UI 测试。对于您的 UI 测试,您必须使用kotlin allopen 插件

于 2020-01-03T10:49:45.077 回答