如何使用VSTS写单元测试_第1页
如何使用VSTS写单元测试_第2页
如何使用VSTS写单元测试_第3页
如何使用VSTS写单元测试_第4页
如何使用VSTS写单元测试_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第第页如何使用VSTS写单元测试如何使用VSTS写单元测试

发表于:2023-07-08来源::点击数:标签:单元VSTSvsts

Microsoft的开发平台VSTS(VisualStudioTeamSystem)集成了单元测试框架(TeamTest),即:VSTS单元测试。它支持:1.生成测试代码框架;2.在IDE中运行测试;3.支持从数据库中加载数据的测试;4.测试运行完成后,进行代码分析覆盖。使用VSTS写

Microsoft的开发平台VSTS(VisualStudioTeamSystem)集成了单元测试框架(TeamTest),即:VSTS单元测试。

它支持:

1.生成测试代码框架;

2.在IDE中运行测试;

3.支持从数据库中加载数据的测试;

4.测试运行完成后,进行代码分析覆盖。

使用VSTS写单元测试的步骤如下:

1.创建测试;

2.编写测试;

3.运行测试;

4.代码覆盖。

1.创建测试

打开解决方案中的.cs类文件(如:StudentManager),在其中的一个方法(如:AddStudent())上右击,选择“创建单元测试”命令。

在弹出的“创建单元测试”对话框中的“输出项目”下拉框中选择“创建新的VisualC#测试项目”,单击“确定”按钮,并在“新建测试项目”对话框中输入测试项目的名称(如:MySchoolTest),单击“创建”按钮后,就看见在原有的解决方案中生成了一个新的项目“MySchoolTest”。

测试项目创建成功后,会同时生成4个与测试相关的文件:

AuthoringTest.txt提供创建测试的说明,包括向项目增加其他测试的说明;

StudentManagerTest.cs包含AddStudent()的测试,以及测试初始化和测试清除的方法;

MySchoolPro.vsmdi测试管理文件;

localtestrun.testrunconfig本地测试运行配置文件。

2.编写测试

创建测试完毕后,VSTS为我们自动生成的只是一个测试框架,默认代码中Assert.Inconclusive表明这是一个未经验证的单元测试。

打开生成的测试文件“StudentManagerTest.cs”,如示例1:

[TestMethod]

publicvoidAddStudentTest()

{

global::MySchool.BLL.StudentManagertarget=new

global::MySchool.BLL.StudentManager();

//TODO:初始化为适当的值

global::MySchool.Models.Studentstudent=null;

stringexpected=null;

stringactual;

actual=target.AddStudent(student);

Assert.AreEqual(expected,actual,

"MySchool.BLL.StudentManager.AddStudent未返回所需的值。");

Assert.Inconclusive("验证此测试方法的正确性。");

}

单元测试中,几个变量的简单介绍:

target表示测试目标对象,通过这个目标对象可以测试该类中的各个方法;

expected表示期望得到的值;

actual表示实际得到的值;

单元测试中,常用的断言方法介绍:

Assert.AreEqual()测试指定的值是否相等,如果相等,则测试通过;

Assert.Inconclusive()表示一个未验证的测试;

Assert.IsTrue()测试指定的条件是否为True,如果为True,则测试通过;

Assert.IsFalse()测试指定的条件是否为False,如果为False,则测试通过;

Assert.IsNull()测试指定的对象是否为空引用,如果为空,则测试通过;

Assert.IsNotNull()测试指定的对象是否为非空,如果不为空,则测试通过;

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

如示例2:

[TestMethod]

publicvoidAddStudentTest()

{

global::MySchool.BLL.StudentManagertarget=new

global::MySchool.BLL.StudentManager();

//TODO:初始化为适当的值

global::MySchool.Models.Studentstudent=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;

stringexpected="学员帐户创建成功!";//修改2

stringactual;

actual=target.AddStudent(student);

Assert.AreEqual(expected,actual,

"MySchool.BLL.StudentManager.AddStudent未返回所需的值。");

//Assert.Inconclusive("验证此测试方法的正确性。");

}

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

如果相等,测试通过。

配置文件中的设置

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

如示例3:

<?xmlversion="1.0"encoding="utf-8"?>

<configuration>

<configSections>

</configSections>

<connectionStrings>

//数据库连接字符串设置

<addname="DataBaseOwner"connectionString="dbo"/>

<addname="MySchoolConnectionString"

connectionString="DataSource=.;InitialCatalog=MySchool;

UserID=sa;Password=123456"

providerName="System.Data.SqlClient"/>

</connectionStrings>

</configuration>

3.运行测试

打开包含有测试项目的解决方案,在工具栏就会出现与测试项目相关的操作按钮栏。

我们要运行项目中的测试,只需要运行测试项目。

测试项目的运行方式有两种:

运行,并启动调试功能;

运行,但不启动调试功能;

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

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

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

4.代码覆盖

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

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

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

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

启用此功能的办法:

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

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

3.在其对话

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论