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