1
在我的API(含改造),我有大量的请求,这是这样的:如何模拟无效呼叫?
public Call<Void> postAsyncReserveDevice(@NonNull ReservedWorkerData data, @NonNull String token) {
return apiService.postReservedWorker(
data,
ApiPrefs.TOKEN_PREFIX + token);
}
在那里我忽略响应的结果 - 他成功与否,这是非常重要的。
但是我在单元测试中遇到了一个问题。我需要嘲笑API答案:
@Test
public void test() {
//...
when(apiService.postAsyncReserveDevice(
eq(data), any(String.class)))
.thenReturn(Calls.response(Any() as Void))
//...
}
看起来不错,但是当我运行测试情况下,我看到的错误:
java.lang.ClassCastException: java.lang.Object cannot be cast to java.lang.Void
如何模拟和测试这些方法在我的API?
你有没有试过使用'any(Void.class)'? –
nope。我换一种方式。但这也行得通! (我的解决方案如此愚蠢:'.... thenReturn(Calls.response(makeVoid())); private void void makeVoid(){return null}') – abbath0767