Java JUnit给出了ComparisonFail,尽管实际和预期是相同的

Java JUnit给出了ComparisonFail,尽管实际和预期是相同的,java,junit,jsoup,Java,Junit,Jsoup,我正在尝试使用Jsoup解析来自网站的字符串,并编写了以下测试来验证解析是否正确 这是我的测试: @Test public void extractBookData() throws Exception { String bookLink = ""; //some address Document doc = Jsoup.connect(bookLink).get().html(); Book book = new Book(); assertEquals("

我正在尝试使用Jsoup解析来自网站的字符串,并编写了以下测试来验证解析是否正确

这是我的测试:

@Test
public void extractBookData() throws Exception {
    String bookLink = ""; //some address
    Document doc = Jsoup.connect(bookLink).get().html();

    Book book = new Book();

    assertEquals("Literatür Yayıncılık", book.getPublisher(doc));
}
这是
getPublisher(元素)
方法:

public String getPublisher(Element element){
    String tableRowSelector = "tr:contains(Yayınevi)";
    String tableColumnSelector = "td";
    String tableRowData = "";
    element = element.select(tableRowSelector).last();
    if (element != null) {
          element = element.select(tableColumnSelector).last();
          if (element != null) {
                tableRowData = element.text().replaceAll(tableRow.getRowName() + " ?:", "").replaceAll(tableRow.getRowName() + " :?", "").replaceAll(" ?: ?", "").trim();
          }
    }
    return tableRowData;
}

问题是,实际字符串和预期字符串看起来是相同的,即使JUnit告诉我们不是这样


我愿意接受您的建议。

我以前也遇到过同样的问题,这是一个不间断的空格(char 160),而不是一个空格(char 32)。在我的例子中,文本来自html文本输入值,而你的文本看起来也来自html


我使用的解决方案就是用一个空格替换所有不间断的空格字符

其中一个字符串中是否有空格或类似的内容?是否尝试从比较窗口复制预期值并按预期将其粘贴到测试中?其他空格通常在比较窗口中高亮显示。我尝试将预期值复制粘贴到测试中,它通过了。它与字符格式有关吗?您是否查找了非打印字符?我查找了非打印字符,预期中没有。我不知道如何办理实际的登机手续。当我复制实际值并粘贴到测试中的预期值时,测试通过。我将测试转换为
字符串s=“litterür Yayıncılık”;对于(inti=0;i,现在当for循环在char=32处的空间char处命中时,测试失败。预期值为32,实际值为160。奇怪的是,ASCII 160在IntelliJ中显示为空格,但在asciitable.com中显示为
a