0
我正在使用Mockito運行Android Junit測試。我測試的是創建的AsyncTask的活動,我想驗證的方法被稱爲在AsyncTask
,但我得到一個錯誤:在AsyncTask中驗證方法調用
Wanted but not invoked
測試用例看起來是這樣的:
@Test
public void testFoo(){
// Mocks have been initialized
myActivity.onCreate(null);
verify(myMock).myMethod(params);
}
如果我像這樣運行測試,我得到一個錯誤
Wanted but not invoked
的原因我的錯誤是因爲myMethod
在的AsyncTask被調用,但在調用myMethod
之前調用。
爲了證明這是正確的,我把暫停測試裏面這樣
@Test
public void testFoo(){
// Mocks have been initialized
myActivity.onCreate(null);
thread.sleep(1000); // sleep so the AsyncTask can finish before calling verify
verify(myMock).myMethod(params);
}
,並通過了測試。
顯然,我不希望線程實際上睡覺。如何確保在我的AsyncTask
完成後調用驗證?
你能提供編譯的代碼嗎? – gontard