差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

Both sides previous revision 前次修改
下次修改
前次修改
java:junit:tech:capture_log4j_output [2018/04/11 23:32]
tony
java:junit:tech:capture_log4j_output [2023/06/25 09:48] (目前版本)
行 8: 行 8:
 如果針對測試提供不同的log4j設定檔,也不是那麼的方便,因此我分享給大家另外一種方法,可以將Log4j訊息導到StringBuffer中以做驗證。 如果針對測試提供不同的log4j設定檔,也不是那麼的方便,因此我分享給大家另外一種方法,可以將Log4j訊息導到StringBuffer中以做驗證。
 ===== How to? ===== ===== How to? =====
 +主要技巧是透過LogManager在測試之前加入WriterAppender,而WriterAppender會使用我給予的OutputStreamWriter:​
 <code java> <code java>
 private StringBuffer mSB; private StringBuffer mSB;
行 28: 行 29:
 } }
 </​code>​ </​code>​
 +當待測程式碼使用了log4j,就會透過OutputStreamWriter將內容寫入[[java:​junit:​tech:​capture_systemout|StringBufferOutputStream]],而StringBufferOutputStream內部有一個StringBuffer記載內容以供之後驗證。\\ 
 +\\ 
 +當測試之後,不能忘記移除測試用的Appender:​
 <code java> <code java>
 @After @After