单元测试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)
}