【发布时间】:2018-05-10 11:45:39
【问题描述】:
我克隆了现有项目,JUnit-4.12 中有一些单元测试。这些测试在每次推送到远程存储库后启动,它们将成功结束,但是当我在 Eclipse 中的本地计算机上运行它们时,它们将以比较失败结束。
org.junit.ComparisonFailure expected:<xy> but was:<xy>
此错误将结束每个测试,我正在尝试将发送的 json 与现有的 json 文件进行比较。
测试:
@Test
public void calculateSignedCasesView() throws JsonProcessingException {
Case case1 = prepareCase();
getEm().persist(case1);
SignedCasesViewFilter filter = new SignedCasesViewFilter(new LinkedHashSet<String>(Arrays.asList("testCode")), new Date(0), new Date(0));
SignedCasesView view = reportService.calculateSignedCasesView(filter);
String actual = getObjectMapper().writeValueAsString(view);
String expected = readToString("signedCasesReportView01.json");
Assert.assertEquals(expected, actual);
}
当我查看结果时,每行的初始空格都会突出显示。
我尝试将此结果复制到 MS Word 中查看,如果没有任何不间断的空格(讨论 here),但所有空格都是普通的。或者我尝试使用不同的编码运行测试,但没有任何效果。
【问题讨论】:
-
我会在您的测试中设置一个断点并查看两个字符串中的实际字符。
-
这可以是不同的换行符、制表符和空格,... 将值调试或打印为十六进制/代码点,原因很可能很明显。
-
好点@tgdavies 我不知道为什么我以前没有想到它。我的 Q 可能重复 stackoverflow.com/a/36324599/3125587
标签: java unit-testing junit junit4