- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
当我创建自定义调用类时,我无法返回响应,因为响应类是最终的。有什么解决办法吗?
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();
我的 downloadPlaces() 方法如下所示:
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
}
最佳答案
更彻底地查看了 Retrofit2 Response 类后,我发现有一个静态方法可以满足我的需要。所以,我只是改变了这一行:
return new Response<PlacesResults>(null, placesResults, null);
至:
return Response.success(placesResults);
现在一切正常。
关于java - 单元测试,自定义调用类改造2请求: Reponse has private access,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39034404/
当我创建自定义调用类时,我无法返回响应,因为响应类是最终的。有什么解决办法吗? public class TestCall implements Call { String fileType;
我正在用 Angular 制作一个http拦截器,我想从$httpProvider拦截器的response抛出错误。 根据文档: response: interceptors get called w
我有 2 个 mysql 数据库,我想为第二个数据库 (analysis_db) 创建一个新模型,但是在运行 makemigrations 之后,它显示“未检测到任何更改”。这是我的代码 在 sett
只是为了简要介绍一下背景,我之所以要跟踪这个特定的颠覆古怪之处,是因为我发现它对我们的新 Maven 设置(特别是发布插件)进行了故障排除。 release:prepare给了我埋在堆栈跟踪中的相同错
我已经用 golang 编写了以下简单的 udp 服务器/客户端。该应用程序将当前时间发送到指定的 ipv6 链路本地地址。接收方发回一个小回复。仅当回复的发送端口与请求的目标端口相同时才有效。 Wi
我正在尝试缓存 ActionResult。在特定的 ActionResult 中,我将一些数据写入 cookie。输出缓存在该操作结果中不起作用。它适用于我不使用 Response.Cookies 的
JSON 当成功代码== 200 { "data": { "user": { "id": 8, "name": "soleekuser", "e
我是一名优秀的程序员,十分优秀!