У меня есть этот модульный тест:
private final ByteArrayOutputStream outContent = new ByteArrayOutputStream();
@Test
public void testLog_C_Indent_String() {
String message = "hallo";
IMyLog instance = getInstance();
instance.setLogFile(null);
instance.setLogConsole(true);
instance.setIndent(3);
instance.log(message);
String expectedPrefix = "\t\t\t";
String expectedText = expectedPrefix + message;
String result = outContent.toString();
assertTrue("The output is expected to be offset by 3 tabs.",
result.startsWith(expectedPrefix)
||
result.contains(expectedText));
}
Мне нужно добавить метод, который выдаст сообщение "hallo" с \ t \ t \ t, результатом будет "\ t \ t \ thallo" «. Я сделал этот метод, но каждый раз, когда я получаю сообщение:« Ожидается, что вывод будет смещен на 3 вкладки. »
private boolean logConsole = true;
private String logFile;
private int indent = 0;
public void log(String message) {
try {
if (this.logConsole) {
System.out.println(message);
}
if (logFile.isEmpty()) {
System.out.println("file is empty");
} else {
PrintWriter writer = new PrintWriter(logFile, "UTF-8");
for (int i = 0; i < indent; i++) {
writer.println("\t");
}
writer.println();
writer.println(message);
writer.close();
}
} catch (FileNotFoundException | UnsupportedEncodingException | NullPointerException e) {
e.printStackTrace();
}
}
Можете ли вы помочь мне?