我试图用 dbunit 实现测试,但我失败了。
总结一下
- 我有一个用于我的假数据库的导入 xml 文件inputFlatXmlDataSet.xml和
- 我生成一个导出文件outputFlatXmlDataSet.xml
- 最后的测试是确保两个文件相等
但他们不是。肉眼没有区别,即使与 eclipse 或 notepad++ 的差异也不显示任何内容。
我遵循了本教程:http ://www.scub-foundation.org/accueil/tutorialaux/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
as Wrapper 来强制编码,但它没有改变任何东西。
如果您想了解更多详情,请不要犹豫。