Java JUnit给出了ComparisonFail,尽管实际和预期是相同的
我正在尝试使用Jsoup解析来自网站的字符串,并编写了以下测试来验证解析是否正确 这是我的测试: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("
@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