Я пытаюсь написать свой модульный тест для проверки генерации моего файла xlsx.Я сохраняю действительный файл в тестовых ресурсах, затем пытаюсь сгенерировать тот же файл и сравнить их.
InputStream xlsxContent = xlsxContentWriter.generateXlsx(getSamples(10), RawEventDto.class);
InputStream file = new ByteArrayInputStream(Files.readAllBytes(Paths.get(ClassLoader.getSystemResource("test.xlsx").toURI())));
Assert.assertEquals(IOUtils.toByteArray(file), IOUtils.toByteArray(xlsxContent));
Проблема: утверждение возвращает false.
Чтобы убедиться, что сгенерированный файл являетсяТак же, как файл в ресурсах, я сохранил сам сгенерированный файл в ресурсах, так что он, очевидно, тот же:
InputStream xlsxContent = xlsxContentWriter.generateXlsx(getSamples(10), RawEventDto.class);
File targetFile = new File("/home/user/test.xlsx");
OutputStream outStream = new FileOutputStream(targetFile);
byte[] buffer = new byte[1024];
int bytesRead;
while((bytesRead = xlsxContent.read(buffer)) !=-1){
outStream.write(buffer, 0, bytesRead);
}
xlsxContent.close();
outStream.flush();
outStream.close();
Есть идеи, почему это возвращает false?Любой трюк, чтобы узнать о файле?
Редактировать:
Вот мой код сейчас:
InputStream file = new ByteArrayInputStream(Files.readAllBytes(Paths.get(ClassLoader.getSystemResource("test.xlsx").toURI())));
byte[] byteArray1 = IOUtils.toByteArray(file);
byte[] byteArray2 = IOUtils.toByteArray(xlsxContent);
Assert.assertEquals(IOUtils.toByteArray(file).length, IOUtils.toByteArray(xlsxContent).length);
Assert.assertTrue(Arrays.equals(byteArray1,byteArray2));
Но я все еще получаю утверждение = ложь, на самом делеЯ получаю эту ошибку:
java.lang.AssertionError: null at org.junit.Assert.fail (Assert.java:86) в org.junit.Assert.assertTrue (Assert.java: 41) в org.junit.Assert.assertTrue (Assert.java:52) в com.renault.hsmt.util.test.XlsxContentWriterTest.testXlsxWrite (XlsxContentWriterTest.java:61)
Фактически,даже этот код возвращает false (я сравниваю сгенерированный файл с самим собой, не беря его из папки ресурсов):
InputStream xlsxContent = xlsxContentWriter.generateXlsx(getSamples(10), RawEventDto.class);
byte[] byteArray1 = IOUtils.toByteArray(xlsxContent);
byte[] byteArray2 = IOUtils.toByteArray(xlsxContent);
Assert.assertEquals(IOUtils.toByteArray(xlsxContent).length, IOUtils.toByteArray(xlsxContent).length);
Assert.assertTrue(Arrays.equals(byteArray1,byteArray2));