单元测试的目的是自动化,可重复。所以肯定不能从控制台输入数据。有输入就不是测试用例了。
测试断言:
以订单管理系统为例,上周写的代码耦合度还是很高的,直接导致测试用例不好写。所以改进了一下。
创建订单、查询订单的方法返回值从void改为Order。
修改订单、删除订单的方法返回值从void改为bool。
有了测试用例的话,输入输出可以写在测试用例里,每个方法间耦合程度就降低了。
这个断言写的怪怪的。要自定义list相等的方法感觉很麻烦的样子。
[TestMethod()]
public void QueryOrderTestByName()
{
OrderService os = new OrderService();
List<Order> tempol = new List<Order>();
os.CreateOrder("树袋熊", "桂平路296弄", "放在小区门口第三个架子上");
Order a = os.CreateOrder("考拉拉", "报春路350弄", "无");
Order b = os.CreateOrder("考拉拉", "报春路350弄", "又下了一单");
List<Order> q = os.QueryOrder("考拉拉");
Assert.AreSame(a, q[0]);
Assert.AreSame(b, q[1]);
}
https://github.com/treepobear/CSharpHomework/tree/master/3.23