【发布时间】:2012-03-20 22:34:54
【问题描述】:
我有一个记录异常字符串的方法。 在我的 JUnit 测试中,我想读取日志并确保其中存在字符串。
有人可以建议如何做到这一点吗?
【问题讨论】:
-
您的意思是捕获输出到控制台,还是您所说的“日志”是日志文件?如果它是一个文件,只需打开文件并读取它。
我有一个记录异常字符串的方法。 在我的 JUnit 测试中,我想读取日志并确保其中存在字符串。
有人可以建议如何做到这一点吗?
【问题讨论】:
如果该方法正在记录到 Log4J,您可以创建一个模拟附加程序并将其附加到正在测试的类。运行测试后,您可以检查 mock appender 并确保记录了正确的字符串。
【讨论】:
您想测试,如果捕获到异常,则将预期消息发送到记录器。解析日志文件是一种选择,但使用这种方法,您也可以测试记录器配置(这应该超出此测试的范围)。
如果模拟接收到预期的消息和预期的日志级别,您可以模拟记录器并进行测试。
或者 - 使用特殊的记录器配置进行测试,以在文件或控制台上接收“原始”记录消息(您可以将该输出重定向到内部打印流)
【讨论】: