JAVA:JUNIT用字符串测试类类型



所以我有一个测试,就是通过从文本文件中读取来测试addNewCustomer方法

@Test
public void testAddNewCustomer() {
    System.out.println("addNewCustomer");
    try {
        File nFile = new File("ProductData.txt");
        File file = new File("CustomerData.txt");
        Scanner scan = new Scanner(file);
        ElectronicsEquipmentSupplier ees = new ElectronicsEquipmentSupplier(1, 1, InputFileData.readProductDataFile(nFile));
        ees.addNewCustomer(InputFileData.readCustomerData(scan));
        CustomerDetailsList expResult = ees.getDetails();
        CustomerDetailsList result = ees.getDetails();
        assertEquals(expResult, result);
    } catch (IllegalCustomerIDException | IOException | IllegalProductCodeException e) {
        fail(e.getMessage());
    }
}

我遇到的问题是,预期的结果是什么?我试着放一个字符串,其中包含我认为会输入的值,但它说我无法将类型字符串和类型CustomerDetailsList进行比较。有什么想法吗?

公共类CustomerDetailsList{

private final ArrayList<CustomerDetails> customerCollection;
public CustomerDetailsList() {
    customerCollection = new ArrayList<>();
}
public void addCustomer(CustomerDetails newCustomer) {
    customerCollection.add(newCustomer);
}
public int numberOfCustomers() {
    return customerCollection.size();
}
public void clearArray() {
    this.customerCollection.clear();
}
/**
 *
 * @param givenID the ID of a customer
 * @return the customer’s details if found, exception thrown otherwise.
 * @throws supplierproject.CustomerNotFoundException
 */
public CustomerDetails findCustomer(String givenID) throws CustomerNotFoundException {
    CustomerNotFoundException notFoundMessage
            = new CustomerNotFoundException("Customer was not found");
    int size = customerCollection.size();
    int i = 0;
    boolean customerFound = false;
    while (!customerFound && i < size) {        
        customerFound = customerCollection.get(i).getCustomerID().equals(givenID);
        i++;
    }
    if (customerFound) {
        return customerCollection.get(i - 1);
    } else {
        throw notFoundMessage;
    }
}
@Override
public String toString() {
    StringBuilder customerDets = new StringBuilder();
    for (int i = 0; i < numberOfCustomers(); i++) {
        customerDets.append(customerCollection.get(i).toString()).append("n");
    }
    return customerDets.toString();
}

}列表本身

通常,您应该测试新客户是否在列表中。但是,expResult和测试的结果是一样的,因为此时ees已经包含了新客户。因此,这种断言毫无意义。

但是,您可以测试客户列表是否包含具有给定电子邮件的客户(或该客户的某些独特属性)。

最新更新