gpt4 book ai didi

java - AssertionFailedError 当输出相同时

转载 作者:行者123 更新时间:2023-11-30 06:40:37 25 4
gpt4 key购买 nike

预期和实际输出的内容相同,但我得到 org.opentest4j.AssertionFailedError

我试图将所有 /n 替换为 System.lineSeparator() 但我得到的输出是:“内容仅在行分隔符方面存在差异”

  @BeforeEach
public void setUpStreamsAndEmptyFile() {
System.setOut(new PrintStream(outContent));
System.setErr(new PrintStream(errContent));

// emptying file contents
try {
PrintWriter pw = new PrintWriter(filePath);
pw.close();
} catch (FileNotFoundException e) {
System.out.println(e.getMessage());
}
}

@AfterEach
public void restoreStreams() {
System.setOut(originalOut);
System.setErr(originalErr);
}

@Test
public void executeCreateEventCommand() {
String expected = "\t Got it. I've added this task: " + System.lineSeparator() +
"\t [Event][✗] Project Meeting (at: 28/08/19 1600 - 28/08/19 1800)" + System.lineSeparator() +
"\t Now you have 1 task in the list" + System.lineSeparator();

CreateEventCommand command = new CreateEventCommand("Project Meeting /at 28/08/19 1600 - 28/08/19 1800");
try {
command.execute(tasks, ui, storage);
} catch (DukeException e) {
System.out.println("execute create event command test should pass, but it didn't " + e.getMessage());
}

assertEquals(expected, outContent.toString());
}

最佳答案

也许您可以尝试检查您的结果中是否有多个子字符串。您可以使用 assertThatHamcrest 来做到这一点.这样您就可以避免使用行分隔符。

import org.hamcrest.core.StringContains;
import org.junit.Assert;

...

String expectedSubString1 = "Got it. I've added this task:";
String expectedSubString2 = "[Event][✗] Project Meeting (at: 28/08/19 1600 - 28/08/19 1800)";
String expectedSubString3 = "Now you have 1 task in the list";

...
String result = outContent.toString();
Assert.assertThat(result, StringContains.containsString(expectedSubString1));
Assert.assertThat(result, StringContains.containsString(expectedSubString2));
Assert.assertThat(result, StringContains.containsString(expectedSubString3));

关于java - AssertionFailedError 当输出相同时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57692538/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com