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

     

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

     

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

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

  • 相关阅读:
    [POI2007]山峰和山谷Grz
    [POI2007]驾驶考试egz
    [POI2007]立方体大作战tet
    BZOJ1085 [SCOI2005]骑士精神
    BZOJ1975 [Sdoi2010]魔法猪学院
    codeforces754D Fedor and coupons
    UOJ79 一般图最大匹配
    BZOJ3944 Sum
    BZOJ3434 [Wc2014]时空穿梭
    UOJ58 【WC2013】糖果公园
  • 原文地址:https://www.cnblogs.com/veins/p/3083210.html
Copyright © 2020-2023  润新知