【发布时间】:2019-06-29 11:04:35
【问题描述】:
如果我以 write 方式编写单元测试,我试图理解。我有一个哈希图,用于存储我的客户注册。我正在尝试为我的 createCustomer 方法编写单元测试。如果我的方向正确,有人可以给我指点吗?
void addCustomer () {
System.out.println ();
String customerName = getString ("Enter Customer Name with cappital letar: ");
String customerAddress = getString ("Enter Customer Address with cappital letar: ");
int customerPhone = getInt ("Enter Customer phone:");
int customerID = checkID ();
Customer customer = new Customer (customerName, customerAddress, customerID, customerPhone);
customerList.put (customerID, customer);
System.out.println ("Customer Added");
}
@Test
public void addCustomerTest () {
HashMap<Integer,Customer> customerList = new HashMap<> ();
String customerName = "Anna";
String customerAddress = "London";
int customerPhone = 1010101;
int customerID = 1000;
Customer customer = new Customer (customerName, customerAddress, customerID, customerPhone);
customerList.put (customerID, customer);
assertTrue(customerList.containsKey(customerID) && customerList.get(customerID) != null);
}
【问题讨论】:
-
这对于 SO 来说几乎是题外话,但是您的测试暴露了代码中的设计问题。您正在混合 UI,您从用户那里获取多个值,然后创建一个具有此状态的对象,然后将其保存到某个全局位置。单元测试只会测试 Customer 对象的创建,您可以在其中断言正确允许使用 null 或无效参数。
标签: java unit-testing junit4