1
私は2つのXMLファイルを持っていると私は次のテスト使用のxUnitを使用してそれらを比較しています:JUnitは - 2つのXML文書が同一であることを比較
@Test
public void testSortXML() throws IOException
{
field = "userid";
outputStream = new ByteArrayOutputStream();
xmlStreamSorter.sort(inputStream, outputStream, comparator);
ByteArrayInputStream expected = new ByteArrayInputStream("<?xml version=\"1.0\" encoding=\"UTF-8\"?> <users><user><userid>10</userid></user><user><userid>3</userid></user><user><userid>1</userid></user></users>"
.getBytes());
System.out.println(outputStream);
Assert.assertThat(expected, CompareMatcher.isIdenticalTo(outputStream));
}
をしかし、テストは次のエラーで失敗します。
Expected child nodelist length '3' but was '0' - comparing <users...> at /users[1] to <byteArrayOutputStream...> at /byteArrayOutputStream[1] (DIFFERENT)
<?xml version="1.0" encoding="UTF-8"?>
<users>
<user>
<userid>10</userid>
</user>
<user>
<userid>3</userid>
</user>
<user>
<userid>1</userid>
</user>
</users>
彼らが同一である:
これは、出力変数の内容です。どのようにテストが失敗するのですか?
を:ちょうどカスタムの差分をこのように作成するのxUnit 2.xのでそれを行うに あなたは「予想される」ものと確認;たとえばファイルに書き込まれたときに...本当に他のファイルを「ソート」した後の内容と一致しますか? – GhostCat
@GhostCat私はoutputStreamの内容をコピーし、除外されたbytearrayに貼り付けました。 – user3727540
@RO_engineer私もこれをしました\t \t Assert.assertThat(expected.toString()、CoreMatchers.equalTo(outputStream.toString())); でも同じ結果が得られました – user3727540