Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何自动生成改装响应的模拟数据对象?_Android_Kotlin_Junit_Mockito_Retrofit - Fatal编程技术网

Android 如何自动生成改装响应的模拟数据对象?

Android 如何自动生成改装响应的模拟数据对象?,android,kotlin,junit,mockito,retrofit,Android,Kotlin,Junit,Mockito,Retrofit,作为Android开发者,我是编写测试代码的新手。 我正在我的android应用程序中使用Kotlin和改装 我有如下改装界面: @GET("/3/movie/{movieId}") fun getMovie(@Query("api_key") apiKey: String, @Path("movieId") movieId: String): Single<TmdbMovieResp> 这意味着我应该制作“mockMovieResp”。 但是“tmdbmoviersp”有太多的成

作为Android开发者,我是编写测试代码的新手。 我正在我的android应用程序中使用Kotlin和改装

我有如下改装界面:

@GET("/3/movie/{movieId}")
fun getMovie(@Query("api_key") apiKey: String, @Path("movieId") movieId: String): Single<TmdbMovieResp>
这意味着我应该制作“mockMovieResp”。 但是“tmdbmoviersp”有太多的成员变量。 我能做到,但是太无聊了! 在这种情况下,它只是一个测试

如果我有更多的方法和响应类型,我应该一次又一次地执行类似的任务


有什么好办法吗?

用MockK代替Mockito进行模拟,然后利用


放松的mocks为任何值或函数返回固定数据,这样当这些单独的属性无关紧要时,您就不需要指定它们

这里是不同的方法。你可以用

更多信息请点击链接。用法非常简单:

    RESTMockServer.whenGET(pathContains("x/y/z/"))
            .thenReturnString("your-response-json");

在测试方法中使用模型类可以做一件事。 当您使用改装时,您必须有一些转换器,如Moshi、GSON,用于响应处理。如果您有模型类,那么使用这些类进行响应模拟,如下所示

val success = TmdbMovieResp() //Response Model class
`when`(mockApi.getMovie(mockApiKey, "id")).thenReturn(Single.just(success))
然后模拟RESTAPI调用,其成功结果如下所示

val success = TmdbMovieResp() //Response Model class
`when`(mockApi.getMovie(mockApiKey, "id")).thenReturn(Single.just(success))

我不知道有什么办法,让别人看看有没有办法