如何使用hamcrest比较文本忽略标签?

时间:2017-07-13 13:20:01

标签: java string unit-testing testing hamcrest

我有一个测试,我想断言它的结果:

    assertThat(cofmanString, new IsEqualIgnoringCase(FileUtils.readFileToString(new File("/Users/myFile.txt"))));
在Intellij中的

我看到字符串是相同的,包括制表符和换行符

实际:

enter image description here

预期: enter image description here

但测试失败了:

enter image description here

我可以使用哪个hamcrest matcher来比较字符串并成功?

2 个答案:

答案 0 :(得分:4)

您可以使用:

assertThat(cofmanString, equalToIgnoringWhiteSpace(FileUtils.readFileToString(
new File("/Users/myFile.txt")).toLowerCase()));

您可以查看更多IsEqualIgnoringWhiteSpace here

答案 1 :(得分:1)

没有"忽略标签"选项,但您可以在比较之前删除所有标签,方法是将assertThat(cofmanString.replace("\t", ""), new IsEqualIgnoringCase( FileUtils.readFileToString(new File("/Users/myFile.txt"))).replace("\t", "")); 应用于每个字词:

load