是否有一种使用泛型参数模拟类的干净方法?假设我必须模拟一个Foo<T>我需要传递给期望a的方法的类Foo<Bar>.我可以很容易地做到以下几点:
Foo mockFoo = mock(Foo.class);
when(mockFoo.getValue).thenReturn(new Bar());
Run Code Online (Sandbox Code Playgroud)
假设getValue()返回泛型类型T.但是当我稍后将它传递给期望的方法时,那将会有小猫Foo<Bar>.铸造是这样做的唯一方法吗?
我想模拟MockWebServer的网络通信.不幸的改造回调永远不会被调用.我的代码:
MockWebServer server = new MockWebServer();
server.enqueue(new MockResponse().setResponseCode(200).setBody("{}"));
server.play();
RestAdapter restAdapter = new RestAdapter.Builder().setConverter(new MyGsonConverter(new Gson()))
.setEndpoint(server.getUrl("/").toString()).build();
restAdapter.create(SearchService.class).getCount(StringUtils.EMPTY,
new Callback<CountContainer>() {
@Override
public void success(CountContainer countContainer, Response response) {
System.out.println("success");
}
@Override
public void failure(RetrofitError error) {
System.out.println("error");
}
});
server.shutdown();
Run Code Online (Sandbox Code Playgroud)
当我在没有回调的情况下使用改装时,它可以工作.