2021年7月6日星期二

代码重构与单元测试——测试项目(二)

我们已经创建了充电宝计费项目,做为我们这次重构的遗留系统,为了验证我们每次重构的正确性,我们需要一个测试项目,对我们重构的代码进行测试。接下来我们来创建这个测试项目。遗留系统,程序员们为了快速完成需求和上线而写出了最基本的代码,而在功能的不断扩充过程中,以打补丁的方式对代码进行扩充,中间还会面临着开发人员的变更和离职,代码就会越来越臃肿,渐渐的变得难以维护。做遗留系统维护工作的程序员,清理代码是他们的日常工作之一。首要的任务是为此系统编写单元测试,搭建重构的测试保护网,并能够形成可读与可工作的测试用例文档。在发现遗留系统中代码的坏味道时,及时地对代码进行重构,并保证重构的小步前进,稳妥的对代码进行结构上的调整,每次调整完后都要进行测试,确保功能和以前一样,只是代码上看着不同。重构模式和现代化的 IDE里的重构工具使重构变得容易、安全和代价低廉。
代码重构与单元测试(一)
 

二、创建测试项目

     我们已经创建了充电宝计费项目,做为我们这次重构的遗留系统,为了验证我们每次重构的正确性,我们需要一个测试项目,对我们重构的代码进行测试。接下来我们来创建这个测试项目。

1.在Visual Studio 2019的"解决方案资源管理器"中,使用鼠标右键,单击解决方案名称,在弹出菜单中选择"添加—》新建项目"。如下图。

 

2.在"添加新项目"界面中,选择"c#"、"Windows"、"测试",此时会出现多个项目模板。选择"单元测试项目"模板(.net Core),然后点击"下一步"按钮。如下图。

 3.在"配置新项目"界面中,填写"项目名称"为LeasePowerBankTest,在"位置"中输入你的目录名称。然后点击"下一步"按钮。如下图。

 

 

4.在"其他信息"界面中选择"目标框架"下拉框中选择"NET50",然后点击"创建"按钮。如下图。

 5.在对上面充电宝计费项目进行测试之前,我们必须先引用充电宝项目。在解决方案资源管理器中,选中LeasePowerBankTest项目,使用鼠标右键单击"依赖项",在弹出菜单中使用鼠标左键单击"添加项目引用",在弹出"引用管理器"对话框中选择"LeasePowerBank"项目,然后点击"确定"按钮。如下图。

 

6.在对上面充电宝计费项目代码重构之前,我们还必须要有上述代码的测试用例。因为在每次重构之前,我们修改的是代码的内部结构,而代码模块对外的调用方式不会变的。所以我们所创建的测试用例可以帮助验证我们重构后的程序是否可以正常的工作,是否重构后还符合我们的需求。下方就是我们创建的测试用例。

using LeasePowerBank;using Microsoft.VisualStudio.TestTools.UnitTesting; namespace LeasePowerBankTest{ [TestClass] public class UnitTest1 {  [TestMethod]  public void CustomerStatementTest()  {   //创建用户   var customer =new Customer ( "张三");   //创建充电宝   PowerBank regularPowerBank = new PowerBank("低-充电宝", PowerBank.LowTraffic);    //创建租赁数据   var rental1 = new Rental(regularPowerBank, 5);   customer.listRentals.Add(rental1);      string result = customer.Statement();   System.Console.WriteLine(result);  } }}


7.在Visual Studio 2019的菜单栏上选择"测试—》运行所有测试"。如下图。

8.针对上述案例,上面测试用例的输出结果如下。在每次重构后,我们都会执行上述测试代码,然后观察结果是否与之前的相同。    结果如下图。

 :https://www.ikjzd.com/articles/91350
Instagram广告类型及高效推广营销策略:https://www.ikjzd.com/articles/91352
如何注册全球速卖通?如何管理全球速卖通账户?:https://www.ikjzd.com/articles/91353
舌尖分开她的细缝舔舐 他的舌尖在她的小核上逗弄:http://lady.shaoqun.com/m/a/247234.html
求你停下别再㖭了老师 哥一起我会坏掉的:http://www.30bags.com/m/a/249942.html
速卖通物流发往国外是怎么操作的?速卖通线上发货又是怎样的?:https://www.ikjzd.com/articles/146381
今日亚马逊"姐夫"时代结束,新任CEO掌权!卖家前路未知:https://www.ikjzd.com/articles/146377
女人想火一样的四个场景,看你有没有。:http://lady.shaoqun.com/a/403812.html
无意中发现老板办公室被美女下属"欺骗":http://lady.shaoqun.com/a/403813.html

没有评论:

发表评论