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

时间:2017-06-14 16:33:10

标签: 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("Literatür Yayıncılık", book.getPublisher(doc));
}

这是getPublisher(Element)方法:

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;
}

Comparison failure window suggests that everything is different

问题在于,即使JUnit另有说明,实际和预期的字符串也是一样的。

我愿意接受你的建议。

1 个答案:

答案 0 :(得分:2)

之前我遇到过同样的问题,这是一个不间断的空间(char 160),它在你的文本而不是空格(char 32)。在我的情况下,文本来自一个HTML文本输入值,你的看起来像他也来自HTML。

我使用的解决方案也是用空格替换所有非破坏空间字符。