当我创建自定义调用类时,我不能返回响应,因为响应类是最终的。是否有任何解决方法?
public class TestCall implements Call<PlacesResults> {
String fileType;
String getPlacesJson = "getplaces.json";
String getPlacesUpdatedJson = "getplaces_updated.json";
public TestCall(String fileType) {
this.fileType = fileType;
}
@Override
public Response execute() throws IOException {
String responseString;
InputStream is;
if (fileType.equals(getPlacesJson)) {
is = InstrumentationRegistry.getContext().getAssets().open(getPlacesJson);
} else {
is = InstrumentationRegistry.getContext().getAssets().open(getPlacesUpdatedJson);
}
PlacesResults placesResults= new Gson().fromJson(new InputStreamReader(is), PlacesResults.class);
//CAN"T DO IT
return new Response<PlacesResults>(null, placesResults, null);
}
@Override
public void enqueue(Callback callback) {
}
//default methods here
//....
}
在我的单元测试类中,我想这样使用它:
Mockito.when(mockApi.getNearbyPlaces(eq("testkey"), Matchers.anyString(), Matchers.anyInt())).thenReturn(new TestCall("getplaces.json"));
GetPlacesAction action = new GetPlacesAction(getContext().getContentResolver(), mockEventBus, mockApi, "testkey");
action.downloadPlaces();
我的DownloadPlace()方法如下所示:
public void downloadPlaces() {
Call<PlacesResults> call = api.getNearbyPlaces(webApiKey, LocationLocator.getInstance().getLastLocation(), 500);
PlacesResults jsonResponse = null;
try {
Response<PlacesResults> response = call.execute();
Timber.d("response " + response);
jsonResponse = response.body();
if (jsonResponse == null) {
throw new IllegalStateException("Response is null");
}
} catch (UnknownHostException e) {
events.sendError(EventBus.ERROR_NO_CONNECTION);
} catch (Exception e) {
events.sendError(EventBus.ERROR_NO_PLACES);
return;
}
//TODO: some database operations
}
在更彻底地研究了改造2响应类之后,我发现有一个静态方法可以做我需要的事情。所以,我简单地更改了这一行:
return new Response<PlacesResults>(null, placesResults, null);
到:
return Response.success(placesResults);
现在一切都正常了。
我试图理解Java8中引入的新日期和时间API。 我在日志文件中有一个unix时间戳,我需要对它进行处理,以确定它属于今天或昨天的哪个小时。 我遇到了一个不寻常的错误在Android Studio,想更好地理解它。
我的自定义助手类如下所示: 位于app/bootstrap/ACL. php 现在,我需要访问所有项目控制器中的这个ACL类。所以我在app.php文件中require_once'ACL. php';。 然后在我的控制器内,我可以执行以下操作: 这个代码工作,但我觉得应该有一个Laravel 5适当的方法来做到这一点。我想知道: 1) 这种方法行吗,还是有更好的方法来实现这一点? 2) 不执行
问题内容: 我正在使用Mocha以便对为node.js编写的应用程序进行单元测试 我想知道是否可以对模块中未导出的功能进行单元测试。 例: 我在其中定义了很多功能 以及一些作为公共导出的功能: 测试用例的结构如下: 显然,这是行不通的,因为没有导出。 对私有方法进行单元测试的正确方法是什么?摩卡咖啡有内置的方法吗? 问题答案: 如果模块未导出功能,则模块外部的测试代码无法调用该功能。那是由于Jav
我编写了以下来让Jackson将一个数组的整数序列化为JSON: 此处使用该类: 我想测试序列化程序的行为,并得出以下结论: 但是,不向写入任何内容。我做错了什么?
问题内容: 我已经开发了一种map-reduce程序。我写了习俗和课程。 我正在使用mapper和reducer 并对其进行单元测试。 我想知道如何对定制和类进行单元测试?测试这些类的最优选方法是什么? 问题答案: 答案中示例代码的经过编译和某种程度上的测
我试图理解Java8中引入的新日期和时间API。 我在日志文件中有一个unix时间戳,我需要对它进行处理,以确定它属于今天或昨天的哪个小时。 我在Android Studio中遇到了一个不寻常的错误,我想更好地理解它。