3
我试图用dbunit来实现测试,但是我失败了。JUnit测试失败,同时比较两个类似的xml文件
综上所述
- 我有我的假数据库导入XML文件,inputFlatXmlDataSet.xml和
- 我产生一个输出文件outputFlatXmlDataSet.xml
- 最终测试以确保这两个文件都等于
但他们不是。肉眼没有什么区别,即使是日食或记事本++的diff也不会显示任何内容。
我跟着这个教程: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
为包装,以迫使编码,但它并没有改变任何东西。
如果您想了解更多详情,请不要犹豫。
什么是'FileUtils'?它来自Apache commons-io吗? – longhua
您是否尝试输出'inputDataSetString'和'outputDataSetString',然后比较它们? – longhua
如果可能,请发布这两个XML文件。最好使用http://xmlunit.sourceforge.net/来比较XML文件。 – longhua