在我的测试中,我检查:
assertEquals("<div class=\"action-button\" title=\"actionButton\">"</div>", result);
如果有人更改了 html (result
),将 SPACE 放在那里,HTML 仍然有效,但我的测试会失败。
如果两个 html 片段与 HTML 相等,是否有某种方法可以比较它们。像 assertHTMLEquals
XML UNIT 表示这两行是相等的:
字符串1:
<ldapConfigurations>
<ldap tenantid="" active="false">
</ldap>
</ldapConfigurations>
字符串2:
<ldapConfigurations>
<ldapdd tenantid="" active="false">
</ldap>
</ldapConfigurations>
但正如您所见,它们并非如此。 (参见:ldapdd
)
最佳答案
这不一定适用于您的情况,但如果您的 HTML 碰巧是有效的 XML,它就可以。您可以使用这个名为 xmlunit 的工具.使用它,您可以编写如下所示的断言方法:
public static void assertXMLEqual(Reader reader, String xml) {
try {
XMLAssert.assertXMLEqual(reader, new StringReader(xml));
} catch (Exception ex) {
ex.printStackTrace();
XMLAssert.fail();
}
}
如果这对您不起作用,也许还有一些其他工具可以用于 HTML 比较。如果这不起作用,您可能希望最终使用像 jtagsoup(或其他)这样的库,并比较它解析的所有字段是否相等。
关于java - 是否存在用于单元测试的 assertHTMLEquals 之类的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16471160/