我使用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