Как тестировать массивы типа класса? Я проводил исследования и понять assertArray Ланг, но я не уверен в том, как это сделать, когда массив не строкаJAVA: чтение тестов JUNIT из массива классов файлов
@Test
public void testReadProductDataFile() throws Exception {
System.out.println("readProductDataFile");
File inputFile = new File("ProductData.txt");
Product[] expResult = null;
Product[] result = InputFileData.readProductDataFile(inputFile);
assertArrayEquals(expResult, result);
// TODO review the generated test code and remove the default call to fail.
fail("The test case is a prototype.");
}
Этот метод сам считывает информацию из текстового файла, разбивает его в массив продукта. Готовые
public void testReadProductDataFile() throws Exception {
System.out.println("readProductDataFile");
File inputFile = new File("ProductData.txt");
Product[] expResult = { new Product("PA/1234",153),new Product("PV/5732",25),
new Product("Au/9271",172),new Product("DT/9489",95)
,new Product("HY/7195",235),new Product("ZR/7413",159)
,new Product("bT/4674",725),new Product("LR/4992",629)
,new Product("Xk/8536",112),new Product("kD/9767",559)};
Product[] result = InputFileData.readProductDataFile(inputFile);
assertArrayEquals(expResult, result);
}
Получение этой ошибки
arrays first differed at element [0]; expected: supplierproject.Product<Product Code: PA/1234
Price Per Unit: 153.0
> but was: supplierproject.Product<Product Code: PA/1234
Price Per Unit: 153.0
>
junit.framework.AssertionFailedError
at supplierproject.InputFileDataTest.testReadProductDataFile(InputFileDataTest.java:55)
Я не могу увидеть разницу и его не позволяя мне увидеть разницу, как это делает иногда ..
Нет никакой разницы, если массивы имеют тип String или любой другой. Ваш код действителен (кроме 'expResult' должен быть инициализирован) –
как бы инициализировать его? единственный способ, я могу думать, - добавить строку вывода, который, я думаю, будет добавлен в массив. –