【发布时间】:2017-11-22 21:24:55
【问题描述】:
我有这样的代码,我想为其编写单元测试。
public class TestClass {
private final Executor executor;
private final Handler handler;
TestClass(Executor executor, Handler handler) {
this.executor = executor;
this.handler = handler;
}
void doSomething(String param1) {
executor.execute(new Runnable() {
@Override
public void run() {
//do something
handler.callHandler();
}
});
}
}
如何使用 Mockito / Powermockito 来验证 callHandler() 方法是否被调用。
【问题讨论】:
-
我其实不喜欢
doSomething的方法。您在这里遇到的问题是此方法做了两件事:创建 Runnable 并让它由执行程序执行。我会重构该方法以接收已经构建的 Runnable,因此它只调用executor.execute(runnable);,然后测试它会容易得多。
标签: java unit-testing mocking mockito powermockito