博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

Visual Studio 2008 单元测试 (转)

Posted on 2010-09-08 16:39  gczhao  阅读(390)  评论(0编辑  收藏  举报

本文转自http://www.cnblogs.com/terryfeng/archive/2009/05/24/1488333.html

开发组件的时候使用VS集成的单元测试功能会很方便

 

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 包含了一个代码覆盖工具,可以详细解释被执行代码的覆盖率,并突出显示哪些代码被执行,哪些代码没有被执行。既然这个是我们这次第一次入门,就不详细介绍了。要深入了解的话就“找找看”吧,或者我们下一篇关于UnitTest的文章再介绍代码覆盖这个问题。