もっと完全な質問は、コールバックをパラメータとする依存関係がある場合、コールバックロジックをカバーする単体テストを書くにはどうすればよいですか?とは依然として依存関係をモックアップしていますか?上記の例でユニットテストコールバックロジックはどうですか?
public class DoStuff {
public void runThis(Runnable callback) {
// call callback
}
}
public class ClassUnderTest {
private DoStuff stuffToDo;
public void methodUnderTest() {
this.stuffToDo.runThis(/*a runnable with some logic*/)
}
}
Iを呼び出し、メソッド呼び出しの模擬出力を検証する必要があるため、私はstuffToDo
をモックであろう。ただし、runThis
を欺くと、コールバックロジックがテストされません。さらに、コールバックロジックは私的でなければならないようですので、直接テストすることは期待しません。おそらくそれは私の誤解です。
コールバックはかなり広範に使用されているので、私はそれらをテストするための一般的な方法があると思いますが、見つけられませんでした。
コールバックはこのコンテキストでのみテストする必要がありますか?もしそうなら、結果を期待している、渡す予定のさまざまなコールバックのテストを書いてみませんか?何か不足していますか? – Jonah
この例のようにCountDownLatchを試したことがありますか?http://stackoverflow.com/a/3802487/2301224 – Baker