我尝试用dbunit实现测试但是我失败了。
总结
但他们不是。肉眼没有区别,即使与日食或记事本差不多,++也没有显示任何东西。
我遵循了本教程:http://www.scub-foundation.org/accueil/tutoriaux/tutorial-dbunit/
我警告你这是法语教程,我怀疑第二个文件的编码不是UTF-8, 但我没有设法强制写入UTF-8。
除 TestDBUnit.java 外,所有文件和代码都与教程相同。
这是代码:
public void testExportData() throws Exception {
// On récupère le jeu de données du fichier XML
IDataSet dataSet = getDatabaseDataSet();
// Fichier XML du jeu de données d'import
File inputFile = new File(INPUT_DATA_SET_FILENAME);
// On vérifie que le fichier existe
assertNotNull(inputFile);
// Fichier XML du jeu de données d'export
File outputFile = new File(OUTPUT_DATA_SET_FILENAME);
FileOutputStream(outputFile), "UTF-8")));
FlatXmlDataSet.write(dataSet, new OutputStreamWriter(new FileOutputStream(outputFile), "UTF-8"));
// On compare les deux fichiers XML pour vérifier qu'ils sont identiques
String inputDataSetString = FileUtils.readFileToString(inputFile/*,
"UTF-8"*/).replace(" ", "\t").trim();
String outputDataSetString = FileUtils.readFileToString(outputFile/*,
"UTF-8"*/).replace(" ", "\t").trim();
assertEquals(inputDataSetString, outputDataSetString);//The failure
我只需添加一个OutputStreamWriter
作为Wrapper来强制进行编码,但它没有改变任何内容。
如果您想了解更多详情,请不要犹豫。
答案 0 :(得分:4)
使用字符串相等来比较XML文件是不明智的,除非您正在测试XML生成库并关心漂亮的打印。
在所有其他情况下,您可能关心两个文件的语义相等(即它们是否包含相同的数据?)。为了帮助进行这种比较,请考虑使用XMLUnit。这将比较文件的内容,而不必担心空格或编码。