【IT168 技术文章】
Microsoft的开发平台VSTS(Visual Studio Team System) 集成了单元测试框架(Team Test),即:VSTS单元测试。
它支持:
1. 生成测试代码框架;
2. 在IDE中运行测试;
3. 支持从数据库中加载数据的测试;
4. 测试运行完成后,进行代码分析覆盖。
使用VSTS写单元测试的步骤如下:
1. 创建测试;
2. 编写测试;
3. 运行测试;
4. 代码覆盖。
1. 创建测试
打开解决方案中的.cs类文件(如:StudentManager),在其中的一个方法(如:AddStudent() )上右击,选择“创建单元测试”命令。
在弹出的“创建单元测试”对话框中的“输出项目”下拉框中选择“创建新的Visual C# 测试项目”,单击“确定”按钮,并在“新建测试项目”对话框中输入测试项目的名称(如:MySchoolTest),单击“创建”按钮后,就看见在原有的解决方案中生成了一个新的项目“MySchoolTest”。
测试项目创建成功后,会同时生成4个与测试相关的文件:
AuthoringTest.txt 提供创建测试的说明,包括向项目增加其他测试的说明;
StudentManagerTest.cs 包含AddStudent()的测试,以及测试初始化和测试清除的方法;
MySchoolPro.vsmdi 测试管理文件;
localtestrun.testrunconfig 本地测试运行配置文件。
2. 编写测试
创建测试完毕后,VSTS 为我们自动生成的只是一个测试框架,默认代码中Assert.Inconclusive 表明这是一个未经验证的单元测试。
打开生成的测试文件“StudentManagerTest.cs”, 如示例1:
[TestMethod]
public void AddStudentTest()
{
global::MySchool.BLL.StudentManager target = new
global::MySchool.BLL.StudentManager();
// TODO:初始化为适当的值
global::MySchool.Models.Student student = null;
string expected = null;
string actual;
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() 测试指定的对象是否为非空,如果不为空,则测试通过;