zoukankan      html  css  js  c++  java
  • nunit在.net项目中的使用一(预备知识)

    1.环境搭建

    http://www.nunit.org/index.php?p=download 处下载windows版本的安装文件(.msi)

    安装后,安装目录下有C:\Program Files\NUnit 2.6\bin\framework\nunit.framework.dll

    在项目中引用。

    2.断言

    2.1 AreEquals

    Assert.AreEquals(期望值,实际值比较内容是否相等(非引用)

    2.2 IsNull

    Assert.IsNull(object) 验证是否为空

    2.3 AreSame

    Assert.AreSame(期望值,实际值比较引用是否相同(即对象是否相同)

    2.4 IsTrue IsFalse

    Assert.IsTrue(bool) Assert.IsFalse(bool) 判断逻辑真假

    2.5 Fail

    Assert.Fail() 是用来标记这个位置是永远不会执行到的位置,执行到程序就停止

    3.分类

    3.1 Suit

    TestSuit su=new TestSuit();

    Su.add(测试对象);

    3.2 Category

    分类,可以在nunit中指定运行那种分类的测试。

    4.Mock

    4.1 Mock的原理

    当系统做单元测试的时候,这个单元跟其他多个项目耦合了,基本上要整个程序都跑起来才能支持这样一个小的单元的测试,而且耦合的测试会导致以后其他单元的修改,带来测试过单元的BUG,于是乎,Mock从天而将。

    Mock原理:

    主要是通过接口来做的,应用中的代码就不用说了,正常实现接口。而Mock对象就可以通过实现自己想要获得的对象,只需要按照测试需求实现以下接口。传参都是接口的引用。

    4.2 Mock的类库框架DotNetMock

    使用框架可以很简单的实现Mock对象,但是模型必须有接口。

    继承于MockObject和接口

    并且提供了ExceptionValueExceptionList等用来实现接口中的变量。

    同时框架也已经早就有了一些常用的mock对象,预留给实际开发中使用。

    4.3动态mock对象

    当一个借口内容相当多,而我的这个单元测试不需要全部写的时候,我们就可以用动态mock了,

    IMock  mock=new DynamicMock(typeof(ICustomer));

    ICustomer cu=(ICustomer)mock.Object;

    cu.SetValue("1","2");

    //这里的ICustomer就是你想动态mock的借口

     高版本的nunit.framework

    DynamicMock mock = new DynamicMock(typeof(IUserModel));
    IUserModel cu = (IUserModel)mock.MockInstance;
    mock.SetReturnValue("Email", "12");
    mock.SetReturnValue("Password", "1234");
    mock.SetReturnValue("ConfirmPwd", "1234");
    mock.SetReturnValue("Role", "Admin");

     

  • 相关阅读:
    进程、线程和协程的图解
    Python多线程的原理与实现
    Python多进程原理与实现
    python面试题-1
    数据库事务隔离级别--读未提交,读已提交,重复读,序列化
    java--浅谈线程(二、线程的方法和状态)
    java--浅谈线程(一简单介绍)
    类加载机制--浅谈
    JSP/Servlet Web 学习笔记 DayThree
    JSP/Servlet Web 学习笔记 DayThree —— 实现一个登陆小界面
  • 原文地址:https://www.cnblogs.com/ntcj/p/nunit.html
Copyright © 2011-2022 走看看