我使用Mockito編寫一個簡單的單元測試。我有一個smiple 抽象類,它實現Runnable
:的Mockito:驗證所捕獲的對象的方法被調用
public abstract class MyRunnable implements Runnable {
@Override
public void run() {
doTask();
}
public abstract void doTask();
}
然後,在測試中的功能使用MyRunnable
:
public class MyService {
public void something() {
executor.execute(new MyRunnable() {
@Override
doTask() {
…
}
});
}
}
我的測試情況下,我想測試doTask()
已運行:
@Test
public void testSomething() {
…
ArgumentCaptor<MyRunnable> myCaptor = ArgumentCaptor.forClass(MyRunnable.class);
verify(mockMyService).something(myCaptor.capture());
// get what has been captured
MyRunnable myRunnable = myCaptor.getValue();
//verify doTask() has run , but got ERROR.
verify(myRunnable).doTask();
}
我測試的情況下拋出以下錯誤:
org.mockito.exceptions.misusing.NotAMockException:
Argument passed to verify() is of type and is not a mock!
錯誤提示verify()
只接受嘲笑對象。然後,我怎麼能確認/測試的捕獲MyRunnable
對象已運行doTask()
用的Mockito?
謝謝,這也是我的想法太:) – user842225