zoukankan      html  css  js  c++  java
  • 利用VisualStudio单元测试框架举一个简单的单元测试例子

    本随笔很简单,不涉及mock和stub对象,而是只给出一个简单的利用Visual Studio单元测试框架的最简单例子。如果需要深入理解Unit Test的原理与艺术,请参考《The art of Unit testing:with examples in .NET》

    1.首先要知道你要测试什么,Unit Test可以测试方法的输出是否符合预期,或者对没有输出的方法可以测试对对象状态造成的影响。

       本例测试一个堆排序方法的正确性。

    2.创建一个Unit Test工程,我们取名为GSUnitTest

    3.创建完成之后,添加需要测试的类所在的工程的引用,本例为Sort

    4.编写测试代码,把TestMethod的方法名改成UnitTest+要测试的方法名,改名不是必需的,但是可以使输出结果清楚的看到是在测试哪个方法。

    5.运行Unit Test

    6.得到结果如下:

    是不是很简单?

    如果项目开始的时候没有Unit Test,当进行了一段时间之后会发现原来写的代码完全是不可测的,原因是我们不能把要测试的方法独立出来测试。

    并且如果我们的工程是多层结构的,那么不同类之间交互的接缝通常需要利用接口,基类等方法进行耦合隔离,然后注入stub对象或者mock一个对象来进行Unit Test的交互。

    单元测试对于大型项目的结构优化是相当有益的。

    另外在测试驱动开发中,Unit Test扮演这相当重要的角色,大致如下,可以看到Coding和Unit Testing是同时进行的,这也就为方法级的缺陷及早发现提供了方法。

    而集成测试主要是测试模块之间的交互状况,UAT就是更多的表层UI测试了。所以UT,SIT,UAT分属于不同的测试层级,针对的缺陷对象是不同的。

    下图取自这里

    RA( Requirement Analysis)  & 
    PSD ( Productive Specification Design)              UAT( User Acceptance Testing)
                                                                                            /
                                                                                          /
                                                                                        /
    FSD(Functional Specification Design)             SIT(System Integration Testing)
                                                                                     / 
                                                                                   /
                                                                                 /
                               Construction(Coding)         UT(Unit Tesing)
                                                                           / 
                                                                         /
                                                                       /
                                                                    /
                                                                  /
                                                                /
                                                              / 

    作者:Andy Zeng

    欢迎任何形式的转载,但请务必注明出处。

    http://www.cnblogs.com/andyzeng/p/3773833.html

  • 相关阅读:
    Grovvy初识
    在eclipse中安装插件
    解决 APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tas
    Axis2 webservice入门--Webservice的发布与调用
    一步一步教你自定义博客园(cnblog)界面
    Enum枚举
    并行与并发
    多线程join(加入)
    守护线程
    停止线程
  • 原文地址:https://www.cnblogs.com/andyzeng/p/3773833.html
Copyright © 2011-2022 走看看