单元测试Android Google Places自动完成API是不可能的
由于不支持创建假响应,因此无法进行单元测试。尝试使用单元测试Android Google Places自动完成API是不可能的,android,google-places-api,google-places,googleplacesautocomplete,Android,Google Places Api,Google Places,Googleplacesautocomplete,由于不支持创建假响应,因此无法进行单元测试。尝试使用val placeResponse=Task创建假响应。,不幸的是,响应创建是API内部的。有什么方法(或解决办法)可以做到这一点吗 @Test fun search_testSuccess() { // AutoComplete response val placeResponse = Task<FindAutocompletePredictionsResponse>. val
val placeResponse=Task创建假响应。
,不幸的是,响应创建是API内部的。有什么方法(或解决办法)可以做到这一点吗
@Test
fun search_testSuccess() {
// AutoComplete response
val placeResponse = Task<FindAutocompletePredictionsResponse>.
val searchConstraints = SearchPlaceConstraints("Fake place")
// AutoComplete request
val request = FindAutocompletePredictionsRequest.builder()
.setSessionToken(autocompleteSessionToken)
.setQuery(searchConstraints.queryText)
.build()
// return provided placesResponse if `PlacesClient.findAutocompletePredictions()` is called
coEvery { placesClient.findAutocompletePredictions(request) } returns placeResponse
// Result of method being tested
lateinit var result: Result<PlaceData<List<AutocompletePrediction>>>
coJustRun { result = googlePlaceSearchRemoteDataSource.search(searchConstraints)}
// Verify PlaceClient has been called
coVerify(exactly = 1) { placesClient.findAutocompletePredictions(request) }
// Assert success
assert(result is Result.Success)
}
@测试
趣味搜索_testSuccess(){
//自动完成响应
val placeResponse=任务。
val searchConstraints=SearchPlaceConstraints(“假位置”)
//自动完成请求
val request=FindAutocompletePredictionsRequest.builder()
.setSessionToken(自动完成SessionToken)
.setQuery(searchConstraints.queryText)
.build()
//如果调用了`PlacesClient.findAutocompletePredictions()`则返回提供的placesResponse
coEvery{placesClient.findAutocompletePredictions(请求)}返回placeResponse
//测试方法的结果
lateinit var结果:结果
coJustRun{result=googlePlaceSearchRemoteDataSource.search(searchConstraints)}
//验证是否已调用PlaceClient
coVerify(正好=1){placesClient.findAutocompletePredictions(request)}
//断言成功
断言(结果是result.Success)
}