我有两个问题想问你。我将测试方法添加到代码行中。测试方法的“预期”和“实际”值应该是多少?如何使用 try-catch 或其他方法在测试方法中真正测试我的自定义异常?你能帮忙吗?
我在顶部定义“customerList”
私有(private)列表 customerList=new ArrayList<>();
`````````There is a "getCustomer" method in the "Bank" class`````````
public Customer getCustomer(int ID) throws CustomerNotFoundException {
for (int i = 0; i < customerList.size(); i++) {
if (customerList.get(i).getId() == ID) {
return customerList.get(i);
}
}
throw new CustomerNotFoundException(ID);
}
```````
`````````There is a "addCustomer" method`````````
public void addCustomer(int id, String name){
customerList.add(new Customer(name, id));
}
`````````There is a "getCustomer" test that I ask`````````
/** Test getCustomer()**/
@Test public void tc504_Bank(){
try {
Bank b = new Bank("Test Name", "Test Address");
b.addCustomer(1, "Test Name");
b.getCustomer(1);
Assert.assertEquals("Customer Not Found", b.getCustomerList().get(0), ??? );
}catch (CustomerNotFoundException e){
Assert.assertEquals("PIN not all digits", 0, 1);
}
}
````````
`````````There is a custom expection class````````
public class CustomerNotFoundException extends RuntimeException {
private String name;
private int id;
public CustomerNotFoundException(String name, int id) {
this.name = name;
this.id = id;
}
public CustomerNotFoundException(String name) {
this.name = name;
}
public CustomerNotFoundException(int id) {
this.id = id;
}
@Override
public String toString() {
return "CustomerNotFoundException: id - " + id + " name - " + name;
}
}
最佳答案
基于您使用的 junit 库版本:
JUnit4
@Test(expected = CustomerNotFoundException.class)
public void tc504_Bank(){
Bank b = new Bank("Test Name", "Test Address");
b.addCustomer(1, "Test Name");
b.getCustomer(1);
}
JUnit5
@Test public void tc504_Bank(){
Bank b = new Bank("Test Name", "Test Address");
b.addCustomer(1, "Test Name");
assertThrows(CustomerNotFoundException.class, () -> {
b.getCustomer(1);
});
}
关于java - 在数组中测试 "getCustomer"方法时,预期值和实际值应该是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55366062/