zoukankan      html  css  js  c++  java
  • NUnit Note

    最最基本的最最重要的:
    1. 两个属性
    TestFixtureAttribute
    本属性标记一个类包含测试。做为一个测试的类,这个类还有一些限制:必须是Public,否则NUnit看不到它的存在;它必须有一个缺省的构造函数,否则是NUnit不会构造它。
    TestAttribute
    Test属性用来标记一个类(已经标记为TestFixture)的某个方法是可以测试的. 对测试方法的要求:1)没有参数;2)没有返回值;3)public

    2. NUint中Per-method :Setup与Teardown

    [SetUp] //用于测试环境的建立
    public void MySetup() {
        
    //do something.
    }


    [TearDown]  
    //清除测试环境
    public void MyTeardown() {
         
    //do something.
    }
    在每个[Test]方法之前,都会调用[SetUp]方法;并在每个[Test]方法完成之后,都会调用[TearDown]方法。

    3. NUint中的Per-class:TestFixtureSetUp和TestFixtureTearDown
    这两个方法对整个Test Class设置一些环境,及所有测试方法都执行完后做一些清理工作。
    当第一个[Test]方法运行前,会调用[TestFixtureSetUp]方法,当所有[Test]方法都执行后,会调用[TestFixtureTearDown]方法。

    4. 测试预期的异常
    //如测试是否抛出ArgumentException
    [Test, ExpectedException(typeof(ArgumentException))]
    public void TestForException() 
    {
        Do.GetSomething(
    null);
        
    //Shouldn's get to here;
    }

    若测试方法预期地抛出ArgumentException异常,测试将会通过;若没有抛出异常,则测试将会失败。
    一旦异常抛出了,测试方法中剩余的代码都不会被执行。

    关于单元测试:
    1. 每个测试的运行都应该是互相独立的;可在任何时候,任意顺序运行每个单独的测试。
    2. solution有很多个工程时,专门新增加一些工程,用于写单元测试,比如有一个ClassLibrary3工程,则建一个TestForClassLibrary3工程,单元测试类放到这个工程中去。
    由于是以工程为单位,所以部署起来很容易,只要把这几个工程去掉就可以了,将来再要用,也只要加上就可以了。
  • 相关阅读:
    WIN32程序挂钩SetLastError,输出错误描述到控制台
    设置c#windows服务描述及允许服务与桌面交互的几种方法(作者博客还有一大堆C#创建服务的文章)
    VC内存溢出一例 –- 调用约定不一致 (_CRT_DEBUGGER_HOOK(_CRT_DEBUGGER_GSFAILURE)
    QtWaitingSpinner
    美国独立战争真相:英法全球争霸战之北美战场
    asp.net的ajax以及json
    HashTable和HashSet中的类型陷阱
    C语言的一些常见细节
    堆排序详解
    Core Animation编程指南
  • 原文地址:https://www.cnblogs.com/taoxu0903/p/1162862.html
Copyright © 2011-2022 走看看