我有这样的代码:
class Outer {
private External external;
class MyCallback extends ExternalAbstractCallback {
void somethingHappened() { if (super.someCondition()) { ... }; }
}
public Outer() {
external = ...;
}
public setExternal(External e) { external = e; } // test support
public void doIt() {
external.setCallback(new MyCallback());
external.doSomething();
}
}
我想测试MyCallback
何时doIt()
被调用的行为。我使用 Mockito 创建一个模拟 External,然后可以external.doSomething()
执行 MyCallback.somethingHappened。我可以控制第super.someCondtion
4 行调用的返回值吗?我可以重新安排实现以提高可测试性吗?External
和的实现ExternalAbstractCallback
不能更改。