bob*_*ann 2 java string logging junit void
所以我创建了一个日志功能,这样我就可以看到每个动作的日期.我现在想对它们进行单元测试.因为函数使用void,我无法测试输出.
我可能会将void更改为String,但是将其用作void将会消失!
我有什么选择?
public class Logger {
public static void log(String s) {
Date d = new Date();
SimpleDateFormat ft =
new SimpleDateFormat ("yyyy.MM.dd '-' hh:mm:ss");
System.out.println("[" + ft.format(d) + "]: " + s);
}
}
Run Code Online (Sandbox Code Playgroud)
JUnit的
@Test
public void testLoggerEmptyString() {
String s = "";
log(s);
}
Run Code Online (Sandbox Code Playgroud)
感谢:D
您需要测试方法的副作用.在这种情况下,您要观察的副作用是写入的内容System.out.您可以使用System.setOut自己安装OutputStream.从那里你可以验证是否写了一些东西.
例如:
String s = "your message";
ByteArrayOutputStream sink = new ByteArrayOutputStream();
System.setOut(new PrintStream(sink, true));
log(s);
assertThat(new String(sink.toByteArray()), containsString(s));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2504 次 |
| 最近记录: |