VS2008单元测试

2010-04-23 21:02:17|  分类: c#学习入门 阅读627 评论0   字号: 订阅

调试是解决错误的过程,测试是发现软件缺陷的过程。每一个软件在交付使用时前都必须经过测试。软件测试是软件开发的重要组成部分,现在已经发展成专门的技术。

在消除了程序中的语法错误和运行错误后,程序仍然不能保证完全正确,程序员可以进行简单的单元测试,来确定基本功能是否完善,复杂的测试由专业人员进行。什么是单元测试呢?

单元测试是测试隔离的单元或模块,对各种方法分别使用不同的输入和执行参数来测试。单元测试的依据是详细设计描述,单元测试应对模块内所有重要的控制路径设计测试用例,以便发现模块内部的错误。单元测试多采用白盒测试技术,系统内多个模块可以并行地进行测试。VS2008将单元测试工具集成在IDE中,方便程序员使用。

1.新建一个类库项目,并为其中的类添加一个方法,方法任意

2009-05-24_164830

创建单元测试。在方法名上右击,然后单击“创建单元测试”选项,打开“创建单元测试”对话框2009-05-24_164944

选择方法

2009-05-24_164958

为新建项目命名

2009-05-24_165031

 

然后在解决方案管理中就多了相应的Test Project和一个叫Solution Items的解决方案文件夹。

相关的文件作用如下:

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

MySchoolPro.vsmdi                 测试管理文件;

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

XXXXTest.cs                          包含测试对象对应的测试方法,以及测试初始化和测试清除的方法.

 

修改输入参数,及对比参数,还可以设置判定方法的条件

2009-05-24_165334

打开测试菜单-》窗口-》测试试图

2009-05-24_171602

在测试试图,右键运行要测试的方法,在测试结果窗口中查看测试结果

2009-05-24_165222

 

 

常用 Assert(判定)对象的方法:

Assert.AreEqual
测试指定的值是否相等;如果两个值不相等,则测试失败。

Assert.AreNotEqual
测试指定的值是否不相等;如果两个值相等,则测试失败。
Assert.AreSame
测试指定的对象是否都引用相同的对象;如果两个输入内容引用不同的对象,则测试失败。
Assert.AreNotSame
测试指定的对象是否引用不同的对象;如果两个输入内容引用相同的对象,则测试失败。
Assert.Fail
断言失败。

Assert.Inconclusive
表示无法证明为 true 或 false 的测试结果。
Assert.IsTrue
测试指定的条件是否为 true;如果该条件为 false,则测试失败。
Assert.IsFalse
测试指定的条件是否为 false;如果该条件为 true,则测试失败。
Assert.IsNull
测试指定的对象是否为 空引用(在 Visual Basic 中为 Nothing);如果它不为空,则测试失败。
Assert.IsNotNull
测试指定的对象是否为非空;如果它为 空引用(在 Visual Basic 中为 Nothing),则测试失败。

另外,代码覆盖率也是一个重要的指标,是指单元测试运行时,覆盖了多少代码。VSTS默认是没有打开代码覆盖率的。Team Test 包含了一个代码覆盖工具,可以详细解释被执行代码的覆盖率,并突出显示哪些代码被执行,哪些代码没有被执行。既然这个是我们这次第一次入门,就不详细介绍了。