快递单号查询
走到今天,我才发现原来技术之路确实难走!需要忍受痛苦和煎熬,需要放弃很多东西
  

VS2010单元测试

 

什么是单元测试

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

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

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

单元测试的优点

    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插件运行单元测试

 

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

 

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

 

posted @ 2013-05-17 09:44  微冷的雨  阅读(2681)  评论(6编辑  收藏  举报