Ich erstelle einen JUnitTest
Test, der eine Datei vergleicht, die mit einer Benchmark-Datei erstellt wurde, die sich im Ordner "" in Eclipse im Ordner "Resources" befindet.Java - InputStreams zweier identischer Dateien vergleichen
-Code
public class CompareFileTest
{
private static final String TEST_FILENAME = "/resources/CompareFile_Test_Output.xls";
@Test
public void testCompare()
{
InputStream outputFileInputStream = null;
BufferedInputStream bufferedInputStream = null;
File excelOne = new File(StandingsCreationHelper.directoryPath + "CompareFile_Test_Input1.xls");
File excelTwo = new File(StandingsCreationHelper.directoryPath + "CompareFile_Test_Input1.xls");
File excelThree = new File(StandingsCreationHelper.directoryPath + "CompareFile_Test_Output.xls");
CompareFile compareFile = new CompareFile(excelOne, excelTwo, excelThree);
// The result of the comparison is stored in the excelThree file
compareFile.compare();
try
{
outputFileInputStream = new FileInputStream(excelThree);
bufferedInputStream = new BufferedInputStream(outputFileInputStream);
assertTrue(IOUtils.contentEquals(CompareFileTest.class.getResourceAsStream(TEST_FILENAME), bufferedInputStream));
}
catch (Exception e)
{
e.printStackTrace();
}
}
}
Allerdings erhalte ich eine Nachricht Assertion Fehler, ohne Details. Da ich gerade die Benchmark-Datei aus der Operation compare file erstellt habe, sollten beide Dateien identisch sein.
Vielen Dank im Voraus!
EDIT: Nach Slim Kommentare habe ich eine Datei Diff-Tool und festgestellt, dass beide Dateien unterschiedlich sind, obwohl, da sie Kopien sind, ich bin mir nicht sicher, wie das passiert ist. Vielleicht gibt es einen Zeitstempel oder etwas?
extrahieren Sie 'CompareFileTest.class.getResourceAsStream (TEST_FILENAME)' in eine Variable und überprüfen Sie, dass es nicht null ist. – roby
@roby Es ist leider nicht null. –
Als nächstes könnten Sie beide Dateien in String konvertieren und assertEquals ausprobieren. Sie könnten 'IOUtils.toString (InputStream, Charset)' verwenden. – roby