JAVA: JUNIT 测试从文件方法 class 数组读取

JAVA: JUNIT testing reading from file method class arrays

如何测试 class 类型的数组?我已经完成研究并理解 assertArray lang 但不确定当数组不是字符串时如何做

  @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.");
        }

此方法本身从文本文件中读取信息,将其拆分为 Product 数组。 已完成

 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)

我看不出区别,它不允许我像有时那样查看区别..

数组是字符串类型还是任何其他类型都没有区别。您的代码有效。

除了expResult应该被初始化,例如

Product[] expResult = { new Product("product 1"), new Product("product 2") };

ProductData.txt 文件应包含将被读取到类似产品的数据(assertArrayEquals 使用 equals() 方法比较项目)。