我有一个在异常时记录字符串的方法。 在我的JUnit测试中,我想读取日志并确保字符串存在于其中。
有人可以建议怎么做吗?
答案 0 :(得分:6)
如果方法是登录到Log4J,您可以创建一个模拟appender并将其附加到正在测试的类。运行测试后,您可以检查模拟appender并确保记录了正确的字符串。
答案 1 :(得分:1)
您想测试,如果捕获到异常,则会将预期的消息发送到记录器。解析日志文件是一个选项,但是使用这种方法也可以测试记录器配置(这应该超出此测试的范围)。
如果模拟器收到预期的消息和预期的日志级别,您可以模拟记录器并进行测试。
或者 - 使用特殊的记录器配置进行测试,以便在文件或控制台上接收“原始”日志消息(您可以将该输出重定向到内部打印流)