まあ、私は回避策を見つけました...しかし、それはTDDの純粋さのためではありません。テスト中の私のアプリのクラスで
(それは実際にいくつかのユーティリティクラス可能性があり、その後、任意のアプリクラスに使用される)私は、この置く:私はこれからLOGGERラインを変更し、アプリケーションクラスに再び
private boolean printErrorStackTrace = true;
void setPrintErrorStackTrace(boolean doPrint){
printErrorStackTrace = doPrint;
}
を
LOGGER.error(String.format("file was %s", documentFile),
printErrorStackTrace? e : null);
そして、私の試験方法で、私はこれを置く:これに
LOGGER.error(String.format("file was %s", documentFile), e);
appClass.setPrintErrorStackTrace(false);
...明らかに私たちは、テストコードは、アプリのコードに到達できるようにすることではない言われている...しかし、もちろん、私は代わりに条件節に方法getPrintErrorStackTrace()
を使うかもしれない...そしてことを嘲笑メソッドをテストコードに追加します。しかし、それはそれほど異端的ではないだろうか?また、テストを支援する機能を追加しないように指示されています。
私のログは今よりきれいに見えます...