zoukankan      html  css  js  c++  java
  • 单元测试系列1 单元测试入门

    因为项目的关系,现在项目中需要用到单元测试,以前的项目中没有使用过,所以对这个不熟悉,现在正好利用这个机会学习一下单元测试,这篇文章主要从以下几个方面来总结,以便能够入门单元测试。

    1,什么是单元测试?
    2,常见的单元测试框架?
    3,如何使用VS自带的单元测试框架进行单元测试?

    1,什么是单元测试

    简单来说,单元测试就是检查一个方法执行后的结果是否与预期的一致。

    2,常见的单元测试框架

    1) NUnit,是xUnit家族中的一员,有java版的JUnit,NUnit是专门针对.net平台的单元测试框架,它的最大优点是免费,轻量和节约内存,它不需要借助IDE就可以直接运行。
    2) vsUnit,是Visual Studio集成的单元测试框架,它的最大优点是与vs集成,受IDE内部支持。另外还提供了丰富的断言和属性。这篇文章主要就是以vsUnit为例来总结。

    3,如何使用VS自带的单元测试框架(vsUnit)进行单元测试

    使用vs自带的单元测试框架创建单元测试可以总结为以下几个步骤:

    第1步:创建一个类库项目并写好待测试的方法(或称为函数)

    第2步:在待测试的方法上右击,选择”创建单元测试”选项,如图。


    unittest01

    第3步:打开创建单元测试窗口,可以看到我们选择的待测试方法已经选中了,点击确定。

    ut02

    第4步:输入新工程的名称,点击确定
    ut03

    第5步:这样,vs就为我们生成了一个单元测试的框架,看一下生成的测试代码。


    ut05

    生成的工程,并添加了对Microsoft.VisualStudio.QualityTools.UnitTestFramework程序集的引用,我们所有的测试API都定义在这个dll中。


    ut04

    图为生成的测试代码,可以看到vs自动给类添加了TestClass特性,给方法添加了TestMethod特性。

    第6步:编写测试代码,并用断言Assert判断测试是否通过。代码如下。

    [TestMethod()]
            public void AddTest()
            {
                Class1 target = new Class1(); // TODO: Initialize to an appropriate value
                double d1 = 2F; // TODO: Initialize to an appropriate value
                double d2 = 3F; // TODO: Initialize to an appropriate value
                double expected = 5F; // 期望值
                double actual;
                actual = target.Add(d1, d2);//实际值
                Assert.AreEqual(expected, actual);//利用断言判断实际值是否与期望值一致,如果一致则测试通过,否则失败
            }

    第7步:运行单元测试。有两种方式,一种是在方法上右键选择运行“测试”,第二种方法是利用测试视图。

    ut06

    方法一:在方法上右键选择

    ut07

    方法二:利用测试视图

    第8步:查看测试结果,可以通过测试结果窗口查看,如图所示,如果为passed表示测试通过,如果为failed则表示测试失败。

    ut08

  • 相关阅读:
    ubuntu 无法在终端切换输入法的解决办法
    c代码连接mysql数据库内存泄露的问题
    栈和堆的地址哪个高
    笔试题之union与struct
    笔试题之interface和abstract class之间的区别
    笔试题之C#struct
    c++单例模式的写法
    c++返回引用是否是真的引用
    operator = 为什么要返回*this的应用
    c++ new和delete操作符的重载
  • 原文地址:https://www.cnblogs.com/mcgrady/p/3174481.html
Copyright © 2011-2022 走看看