技术开发 频道

如何使用VSTS写单元测试

  我们通过对示例1 添加测试所需的初始值,并对断言进行简单的修改后,便得到一个正式的单元测试。如示例2:

[TestMethod]
public void AddStudentTest()
{
   global::MySchool.BLL.StudentManager target = new
               global::MySchool.BLL.StudentManager(); 
  
   // TODO:初始化为适当的值
   global::MySchool.Models.Student student = new
               global::MySchool.Models.Student();   // 修改1
           student.LoginId = "003";
           student.LoginPwd = "test003";
           student.UserStateId = 1;
           student.studentName = "test003";
           student.studentNo = "test003";
           student.Sex = "男";
           student.ClassID = 1;

   string expected = "学员帐户创建成功!";   //修改2
   string actual;
   actual = target.AddStudent(student);

   Assert.AreEqual(expected, actual,
                    "MySchool.BLL.StudentManager.AddStudent 未返回所需的值。");
   // Assert.Inconclusive("验证此测试方法的正确性。");
}


  这样,便得到了一个正式的单元测试。用断言Assert.AreEqual()比较expected、actual是否相等。如果相等,测试通过。

  配置文件中的设置
  由于我们的测试需要和数据库打交道,并且数据库的连接字符串是从配置文件中读取的,所以我们需要在测试项目中添加配置文件(app.config)。如示例3:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <configSections>
    </configSections>
       
    <connectionStrings>
             //数据库连接字符串设置
            <add name="DataBaseOwner"  connectionString="dbo" />
            <add name="MySchoolConnectionString" 
                    connectionString=" Data Source=.; Initial Catalog=MySchool;
                                              User ID=sa; Password=123456 "
                    providerName="System.Data.SqlClient" />
    </connectionStrings>
</configuration>

  3.  运行测试

  打开包含有测试项目的解决方案,在工具栏里就会出现与测试项目相关的操作按钮栏。
  我们要运行项目中的测试,只需要运行测试项目。
  测试项目的运行方式有两种:
                                          运行,并启动调试功能;
                                          运行,但不启动调试功能;

  1.  当我们运行测试后,在“测试结果”窗口中,将列出项目中所有的测试。

  2.  开始的时候,测试会处于“挂起”的状态,测试运行的结果是“通过”或者“失败”。

  3.  如果我们要查看测试结果的额外细节时,选定测试项并双击,便打开了详细信息窗口。

  4.  代码覆盖

  代码覆盖是单元测试的一个关键指标。

  代码覆盖:是指单元测试运行时,覆盖了多少代码。

  Team Test 包含了一个代码覆盖工具,可以详细解释被执行代码的覆盖率,并突出显示哪些代码被执行,哪些代码没有被执行。

  注意: VSTS 在生成单元测试框架时,默认没有启用“代码覆盖”功能。

  启用此功能的办法:

  1.  首先打开“本地测试运行配置文件” localtestrun.testrunconfig ,在解决方案中。

  2.  双击“localtestrun.testrunconfig”文件,弹出该对话框窗口。

  3.  在其对话框窗口的左侧选择“代码覆盖率”,然后在右侧的“要检测的项目”中选择要检测的项目。

  4.  单击“应用”按钮。

  当我们启用了代码覆盖功能后,再次运行单元测试时:

  在“代码覆盖率结果”窗口中,选中“AddStudent()”双击,便可查看代码覆盖率。

  在“代码覆盖率结果”窗口中,我们还可以查看单元测试中代码覆盖的块数,以及代码覆盖的百分比信息。

0
相关文章