什么是单元测试
单元测试就是编写一段代码,用来检查某个特定条件下,另外一段代码的行为是否符合我们的预期。单元测试的代码与实际程序的代码具有同等的重要性。
每一个单元测试,都是用来定向测试它所对应的一个单元的代码是否正确执行。
单元测试的代码应该由代码的编写者来完成。
单元测试的优点
1, 通过单元测试能够协助程序员尽快找到代码中bug的具体位置,
2, 而且好的单元测试能够让程序员对自己的程序更有自信。
3, 能够让程序员在提交项目之前就将代码变得更加的健壮
4, 能够协助程序员更好的进行开发
5, 能够向其他的程序员展示你写的程序应该如何调用
6, 能够让项目主管更了解系统当前的情况
VS2010中如何进行单元测试
VS中的测试工具可以对任何类、接口、结构等实体中的字段、属性、构造函数、方法等进行单元测试。
单元测试分两种:整体测试和单独测试。
整体测试:如果要对一个类中所有的方法都添加测试用例,可以对类名点右键,这样对类中所有方法自动生成测试方法。
单独测试:如果只是对类中的某个方法进行单元测试,那么对方法点右键→创建单元测试即可。
案例:下面我们用一个案例说明如何使用vs中的单元测试。
步骤一:创建一个名称为TestCase的控制台项目。
由于该步骤比较简单,这里我们就不再赘述了。
然后添加一个Calculator类,在类中写一个GetAvg方法
代码如下:
步骤二:创建单元测试
接下来,将鼠标放到Calculator类上,然后点击鼠标右键,从菜单项中找到“创建单元测试”项,结果如下图
点击确定后,在新建测试项目中,输入需要创建的单元测试的新项目的名称,然后单击"创建"按钮,则自动创建一个新的单元测试代码项目
步骤三:根据需要修改测试用例
默认情况下,系统自动生成了测试用例方法,但是不符合我们的需求,我们需要订正。
针对GetAvg方法我们可以做如下订正。
说明:Assert.AreEqual(expected, actual);
Assert在这里可以理解成断言:在VSTS里做单元测试是基于断言的测试。
默认代码中Assert.Inconclusive 表明这是一个未经验证的单元测试。在实际的程序中可以注释掉。
当然 ,Assert类还有其他方法
1、Assert类的使用
Assert.Inconclusive() 表示一个未验证的测试;
Assert.AreEqual() 测试指定的值是否相等,如果相等,则测试通过;
AreSame() 用于验证指定的两个对象变量是指向相同的对象,否则认为是错误
AreNotSame() 用于验证指定的两个对象变量是指向不同的对象,否则认为是错误
Assert.IsTrue() 测试指定的条件是否为True,如果为True,则测试通过;
Assert.IsFalse() 测试指定的条件是否为False,如果为False,则测试通过;
Assert.IsNull() 测试指定的对象是否为空引用,如果为空,则测试通过;
Assert.IsNotNull() 测试指定的对象是否为非空,如果不为空,则测试通过;
步骤四:运行单元测试
通过
菜单项执行调试或者通过
进行调试。
步骤五:查看结果
这样我们就完成对GetAvg方法的单元测试。
最后说下自己碰到的一些问题吧!
问题:在Win7系统上安装了VS2010和VS2012,但是单元测试结果总是挂起。上网搜索了N久,也没有找到解决方案,最后只能通过Reshapeer插件运行单元测试
当然如果单元测试出错,会有对应的消息
好了,今天对单元测试的讲解就到这里,以后有机会,再来更新后续内容…
原文地址:http://www.cnblogs.com/weilengdeyu/archive/2013/05/17/3083149.html