即使XML是相同的,jUnit比较XML字符串也会失败

时间:2013-04-25 08:37:51

标签: java xml servlets junit

我正在编写一系列jUnit测试,以确保我的代理Servlet从各种来源获取客户端页面的XML。

我的一个测试向servlet发送请求以获取XML,然后将其与本地副本进行比较(我认为)

我检查了每个非常有趣的XML的长度。

本地副本长度= 1753

远程版本长度= 1796

我只是使用assertTrue()

assertTrue(remote.equals(local));       

为什么长度存在差异的任何想法,是否有一种方法在jUnit中我可以比较XML以确保它们是预期的并且在语法上是正确的?

欢迎提出其他建议吗?

2 个答案:

答案 0 :(得分:4)

关于比较XML的更好方法的问题 - 我之前使用过XMLUnit并认为它运作良好。

答案 1 :(得分:2)

问题很可能是您有不同的换行符,例如一个字符串中的\n和另一个字符串中的\n\r。您可以在比较字符串之前删除所有换行符:

s1 = s1.replace("\n", "").replace("\r", "");
s2 = s2.replace("\n", "").replace("\r", "");
assertEquals(s1, s2); // should evaluate to true now