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

 

二、创建测试项目

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

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

 

9. 我们创建一个新的测试用例,用以帮助我们验证一下高人流量地段的计费是否正确。下方就是我们创建的测试用例CustomerHighTest类的代码和测试结果。如下图。

using LeasePowerBank;
using Microsoft.VisualStudio.TestTools.UnitTesting;

 namespace LeasePowerBankTest
{

    [TestClass]
    public class CustomerHighTest
    {

        [TestMethod]
        public void CustomerStatementTest()
        {

            //创建用户
            var customer = new Customer("王五");

            //创建充电宝
            PowerBank regularPowerBank = new PowerBank("高-充电宝", PowerBank.HighTraffic);

 
            //创建租赁数据
            var rental1 = new Rental(regularPowerBank, 5);


            customer.listRentals.Add(rental1);

            string result = customer.Statement();

            System.Console.WriteLine(result);
        }
    }
}

 

 

 

posted @ 2021-07-06 15:48  DotNet菜园  阅读(928)  评论(1编辑  收藏  举报