次のようなコードがあります。
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.doSomething()
、MyCallback.somethingHappened を実行できます。4 行目の呼び出しの戻り値を制御できますsuper.someCondtion
か? テスト容易性を向上させるために実装を再配置できますか? External
との実装はExternalAbstractCallback
変更できません。