У меня есть следующий unitTest:
@Test
fun loadMovieTrailer() {
val video = Video("id", "name", "site",
"videoId", 20, "type")
val observableResponse =
Observable.just(MovieApi.VideoWrapper(Lists.newArrayList(video)))
`when`(movieApi.trailers(anyString())).thenReturn(observableResponse)
with(viewModel) {
assertFalse(isTrailersVisible.get())
showTrailers(movie)
assertTrue(isTrailersVisible.get())
assertFalse(trailers.isEmpty())
assertTrue(trailers.size == 1)
}
}
И это movieApi.trailers
модифицированный метод API:
@GET("3/movie/{movieId}/videos")
fun trailers(@Path("movieId") movieId: String): Observable<VideoWrapper>
У меня есть другой метод в MovieApi, для которого я хочу написать тест:
@GET("3/discover/movie?language=en&sort_by=popularity.desc")
fun popularMovies(@Query("page") page: Int): Call<MovieWrapper>
Как вы видите, он возвращает Call<T>
объект вместо Observable
. Как можно заменить следующую часть в методе испытаний?
Observable.just(MovieApi.VideoWrapper(Lists.newArrayList(video)))
`when`(movieApi.trailers(anyString())).thenReturn(observableResponse)
Полный пример кода можно найти по адресу: https://github.com/Ali-Rezaei/TMDb-Paging