JUnit能否在测试结束时比较两个XML文件并进行区分?
JUnit能否在测试结束时比较两个XML文件并进行区分?有人在网上有这样的例子吗?也许这对你有帮助,也许没有。如果您希望识别一个小的差异,那么这个简单的示例可能会奏效。我喜欢流畅的断言,但也因为它提供了一些有用的失败信息JUnit能否在测试结束时比较两个XML文件并进行区分?,junit,Junit,JUnit能否在测试结束时比较两个XML文件并进行区分?有人在网上有这样的例子吗?也许这对你有帮助,也许没有。如果您希望识别一个小的差异,那么这个简单的示例可能会奏效。我喜欢流畅的断言,但也因为它提供了一些有用的失败信息 package example; import static org.assertj.core.api.Assertions.*; import com.google.common.base.Joiner; import org.junit.Test; public cl
package example;
import static org.assertj.core.api.Assertions.*;
import com.google.common.base.Joiner;
import org.junit.Test;
public class XmlDiffExample {
private static final String NEWLINE = System.getProperty("line.separator");
private Joiner j = Joiner.on(NEWLINE);
private String[] xml = new String[] {
"<?xml version='1.0'?>",
"<container>",
"<greeting>hello, %s!</greeting>",
"</container>"
};
@Test
public void should_diff_xml_docs() {
assertThat(getDoc1()).isEqualTo(getDoc2());
}
private String getDoc1() {
return String.format(j.join(xml), "world");
}
private String getDoc2() {
return String.format(j.join(xml), "foo");
}
}
包示例;
导入静态org.assertj.core.api.Assertions.*;
导入com.google.common.base.Joiner;
导入org.junit.Test;
公共类xml示例{
私有静态最终字符串NEWLINE=System.getProperty(“line.separator”);
专用Joiner j=Joiner.on(新线);
私有字符串[]xml=新字符串[]{
"",
"",
“你好,%s!”,
""
};
@试验
public void应_diff_xml_docs(){
断言(getDoc1()).isEqualTo(getDoc2());
}
私有字符串getDoc1(){
返回String.format(j.join(xml),“world”);
}
私有字符串getDoc2(){
返回String.format(j.join(xml),“foo”);
}
}
收益率:
org.junit.ComparisonFailure: expected:<...>
<greeting>hello, [foo]!</greeting>
</cont...> but was:<...>
<greeting>hello, [world]!</greeting>
</cont...>
org.junit.ComparisonFailure:应为:
你好,[foo]!
但是:
你好,[世界]!
JUnit没有内置任何内容。你必须分析这两者,在树上走走,判断它们是否相同。为什么字符串比较不够?在这种情况下,某些分支总是不同的。只有一些分支需要相同,而那些分支需要不同。干杯XMLUnit正是这样做的。然后我将使用字符串比较来比较需要相同的子树。树是递归的