2012-03-20 50 views
2

我有一个在异常情况下记录字符串的方法。 在我的JUnit测试中,我想读取日志并确保其中存在字符串。如何在Junit测试中读取日志文件

有人可以建议如何做到这一点?

+0

你的意思是捕获输出到控制台,或者是你谈论日志文件的“日志”?如果它是一个文件,只需打开文件并阅读它。 – Jochen 2012-03-20 22:51:22

回答

1

您想要测试的是,如果发现异常,预期的消息将发送到记录器。解析日志文件是一个选项,但是通过这种方法,您也可以测试记录器配置(应该超出此测试的范围)。

如果模拟接收到预期的消息和期望的日志级别,则可以模拟记录器并进行测试。

或者 - 使用一种特殊的记录仪的配置进行测试,以接收文件或控制台上的“原始”日志消息(你可以重定向输出到内部打印流)

6

如果该方法被记录到Log4J,你可以创建一个模拟appender并将其附加到正在测试的类。运行测试后,您可以检查模拟appender并确保正确的字符串已记录到它。

+0

这就是我做的..谢谢!! – user1180969 2012-03-21 16:14:07

+1

习惯上接受最好回答问题的答案。 – 2012-03-21 21:06:56