VS2010单元测试(转)

摘要:
单元测试的代码与实际程序的代码具有同等的重要性。单元测试的代码应该由代码的编写者来完成。单元测试分两种:整体测试和单独测试。默认代码中Assert.Inconclusive表明这是一个未经验证的单元测试。问题:在Win7系统上安装了VS2010和VS2012,但是单元测试结果总是挂起。

什么是单元测试

单元测试就是编写一段代码,用来检查某个特定条件下,另外一段代码的行为是否符合我们的预期。单元测试的代码与实际程序的代码具有同等的重要性。

每一个单元测试,都是用来定向测试它所对应的一个单元的代码是否正确执行。

单元测试的代码应该由代码的编写者来完成。

单元测试的优点

1, 通过单元测试能够协助程序员尽快找到代码中bug的具体位置,

2, 而且好的单元测试能够让程序员对自己的程序更有自信。

3, 能够让程序员在提交项目之前就将代码变得更加的健壮

4, 能够协助程序员更好的进行开发

5, 能够向其他的程序员展示你写的程序应该如何调用

6, 能够让项目主管更了解系统当前的情况

VS2010中如何进行单元测试

VS中的测试工具可以对任何类、接口、结构等实体中的字段、属性、构造函数、方法等进行单元测试。

单元测试分两种:整体测试和单独测试。

整体测试:如果要对一个类中所有的方法都添加测试用例,可以对类名点右键,这样对类中所有方法自动生成测试方法。

单独测试:如果只是对类中的某个方法进行单元测试,那么对方法点右键→创建单元测试即可。

案例:下面我们用一个案例说明如何使用vs中的单元测试。

步骤一:创建一个名称为TestCase的控制台项目。

由于该步骤比较简单,这里我们就不再赘述了。

然后添加一个Calculator类,在类中写一个GetAvg方法

代码如下:

VS2010单元测试(转)第1张

步骤二:创建单元测试

接下来,将鼠标放到Calculator类上,然后点击鼠标右键,从菜单项中找到“创建单元测试”项,结果如下图

VS2010单元测试(转)第2张

点击确定后,在新建测试项目中,输入需要创建的单元测试的新项目的名称,然后单击"创建"按钮,则自动创建一个新的单元测试代码项目

VS2010单元测试(转)第3张

步骤三:根据需要修改测试用例

默认情况下,系统自动生成了测试用例方法,但是不符合我们的需求,我们需要订正。

针对GetAvg方法我们可以做如下订正。

VS2010单元测试(转)第4张

说明: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() 测试指定的对象是否为非空,如果不为空,则测试通过;

步骤四:运行单元测试

通过

VS2010单元测试(转)第5张

菜单项执行调试或者通过

VS2010单元测试(转)第6张

进行调试。

步骤五:查看结果

VS2010单元测试(转)第7张

这样我们就完成对GetAvg方法的单元测试。

最后说下自己碰到的一些问题吧!

问题:在Win7系统上安装了VS2010和VS2012,但是单元测试结果总是挂起。上网搜索了N久,也没有找到解决方案,最后只能通过Reshapeer插件运行单元测试

VS2010单元测试(转)第8张

当然如果单元测试出错,会有对应的消息

VS2010单元测试(转)第9张

好了,今天对单元测试的讲解就到这里,以后有机会,再来更新后续内容…

原文地址:http://www.cnblogs.com/weilengdeyu/archive/2013/05/17/3083149.html

免责声明:文章转载自《VS2010单元测试(转)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇MobaXterm的一些介绍(Top 5 SSH Clients for Windows (Alternatives of PuTTY))PHP错误:SQLSTATE[HY000] [2054] The server requested authentication method unknown to the client下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Debug与Release版本的区别

  Debug 和 Release 并没有本质的区别,他们只是VC预定义提供的两组编译选项的集合,编译器只是按照预定的选项行动。如果我们愿意,我们完全可以把Debug和Release的行为完全颠倒过来。当然也可以提供其他的模式,例如自己定义一组编译选项,然后命名为MY_ABC等。习惯上,我们仍然更愿意使用VC已经定义好的名称。    Debug版本包括调试...

java 关键字 assert的学习

之前在学习java源码时,发现了assert这个不常用的关键字。下面直接来介绍下这个关键字的使用。 assert是什么? 它是jdk1.4之后新增加的关键字,没了。   assert的作用是什么? assert在很多编程语言中的用途都是断言。 但是什么是断言呢? 只是简单的判断一下布尔表达式是否为真么? 好,带着这些问题,我们直入正题吧。 assert v...

【转】C++调试技巧

自己总是用VC平台来开发东西,但是有时候总是出这样那样的问题,在这里把Visual C++开发工具与调试技巧整理摘录如下,希望对大家有用,省去大家再去搜索的烦恼。   1.如何在Release状态下进行调试   Project->Setting=>ProjectSetting对话框,选择Release状态。C/C++标签中的Category选G...

在线测试JavaScript代码性能

(寻龙分金看缠山,一重缠是一重关,关门如有八重险,不出阴阳出八卦) JSLint JSLint是基于Web的验证JavaScript错误代码的工具。它拥有的功能及特定的设置来使用您的需求,自定义你的验证算法。 JsUnit JsUnit是一款在客户端(在浏览时)的单元测试JavaScript框架。对JavaScript而言,JUnit就像是它的一个端口。当...

随笔:写代码和做开发的不同

作为一个即做过后台开发,又写过前端代码,还带过几批开发兄弟,后来又干过业务的人,我对做开发和写代码的不同有一些感悟。 写代码和做开发是不同的,从一个新手程序员接到的任务开始讲吧! 一般新手程序员会被分配一个任务,告诉你要写的模块功能需求和输入、输出要求。 这个时候,新手会查看之前的前辈们写的代码参考,复制可用的部分,中间填上功能逻辑。 很多坑就是这个时候埋...

程序员必备的代码审查(Code Review)清单【转载】

在我们关于高效代码审查的博文中,我们建议使用一个检查清单。在代码审查中,检查清单是一个非常好的工具——它们保证了审查可以在你的团队中始终如一的进行。它们也是一种保证常见问题能够被发现并被解决的便利方式。 软件工程学院的研究表明,程序员们会犯15-20种常见的错误。所以,通过把这些错误加入到检查清单当中,你可以确保不论什么时候,只要这些错误发生了,你就能发现...