如何快速上手.net下单元测试工具NUnit?
NUnit基本使用
准备知识:
读此博文需要了解单元测试基本概念及NUnit的的安装。
传送门:单元测试之道(使用NUnit)
1.常见的错误
1.1 构造函数错误。
1.2 程序抛出异常错误。
throw new ApplicationException("Intentional Exception");1.3 Assert.Fail方法抛出错误。
[Test]
public void FailingTest()
{
// Assert.Fail方法可以抛出错误。
Assert.Fail("Intentional failture");
}
1.4 方法带参数的错误。
// 无法带参执行
// 调用者为ut,参数没有提供
[Test]
public void NotRunnableTest(int a)
{
}
1.5 函数访问级别的错误。
// 用于测试的方法必须是公开的
// 无法进行测试
// 可测试也会报错:method is not public
[Test]
protected static void MockTest5()
{
}
1.6 不确定错误Inconclusive。
// Inconclusive 不确定的结果
[Test]
public void InconclusiveTest()
{
Assert.Inconclusive("No valid data");
}
2.基本的使用
2.1 添加描述信息
[Test(Description = "Mock Test #1")]
public void MockTest1()
{
}
2.2.1 构造函数带参数
// 构造带参数测试
// 多个测试用逗号隔开
[TestFixture(),TestFixture()]
public class ParameterizedFixture
{
public ParameterizedFixture(int num)
{
}
[Test]
public void Test1() { }
[Test]
public void Test2() { }
}
2.2.2 构造函数带泛型参数
// 泛型构造函数也能带参测试
[TestFixture(), TestFixture("a")]
public class GenericFixture<T>
{
public GenericFixture(T obj)
{
}
[Test]
public void Test1() { }
[Test]
public void Test2() { }
}
2.3.1 有参无返函数
// 带参函数的测试
[TestCase(), TestCase()]
public void Test3(int num)
{
}
2.3.2 有参有返函数
// 带参带返回值的测试
// 必须指定返回值,执行结果和返回值相等,才算正确。
[TestCase(,,Result = ),TestCase(,,Result = )]
public int MethodWithParameters(int x, int y)
{
return (x + y);
}
2.3.3 带泛型参数的函数
// 带参函数的测试
// 泛型内置工具不识别,可以用 gui测试
[TestCase(, ), TestCase("a", "b")]
public void GenericMethod<T>(T x, T y)
{
}
2.4 忽略测试。
[Test,Ignore]
public void Test1() { }
源码下载(含NUitNUnit-2.6.4 及相关文档):
如何快速上手.net下单元测试工具NUnit?的更多相关文章
- 单元测试工具NUnit的使用
使用 NUnit 工具来进行单元测试 首先在要创建一个单元测试的项目,通常在原有的解决方案中添加新项目, 在弹出的项目类型中选择单元测试,项目的命名一般情况下与解决方案的名称相同后加UnitTes ...
- 快速上手IOT视觉化开发工具Node-RED
作者:何信昱 现在有越来越多非专业背景但有创造热诚的Maker,想要进入物联网领域大展身手,但常常苦于无法撰写艰深难懂的程序代码,以及想要连接各种硬件与时下最流行的社群软件,却不知道如何使用开放给开发 ...
- Webpack 快速上手(下)
杏仁前端开发工程师,代码洁癖症早期,关注前端技术. 由于文章篇幅较长,为了更好的阅读体验,本文分为上.中.下三篇: 上篇介绍了什么是 webpack,为什么需要 webpack,webpack 的文件 ...
- 【转】Webpack 快速上手(下)
由于文章篇幅较长,为了更好的阅读体验,本文分为上.中.下三篇: 上篇介绍了什么是 webpack,为什么需要 webpack,webpack 的文件输入和输出 中篇介绍了 webpack 在输入和输出 ...
- 快速上手pandas(下)
和上文一样,先导入后面会频繁使用到的模块: In [1]: import numpy as np import pandas as pd import matplotlib.pyplot as p ...
- 单元测试工具Nunit
原文链接:http://blog.csdn.net/snowshinoy/article/details/6951352 调试 附加到: nunit-agent.exe进程:
- vs转eclipse之工具快速上手篇
eclipse工具下载 首先说明,本篇内容适用于刚开始学java的同学,老手大牛等可以路过. 不得不说vs确实很强大,常用的都在安装包里集成了,几乎可以一键安装,直接使用,操作起来非常方便. ecli ...
- 在.NET开发中的单元测试工具之(1)——NUnit
NUnit介绍 NUnit是一个专门针对于.NET来写的单元测试框架,它是xUnit体系中的一员,在xUnit体系中还有针对Java的JUnit和针对C++的CPPUnit,在开始的时候NUnit和x ...
- 在.NET开发中的单元测试工具之——NUnit
NUnit介绍 NUnit是一个专门针对于.NET来写的单元测试框架,它是xUnit体系中的一员,在xUnit体系中还有针对Java的JUnit和针对C++的CPPUnit,在开始的时候NUnit和x ...
随机推荐
- Kattis - glitchbot 【DFS】
Kattis - glitchbot [DFS] 题意 有一个机器人 刚开始在(0, 0),然后给出一个目标点,并且会给出一系列指令,但是其中会有一个指令是错误的.我们需要找出那个指令,并且改成正确的 ...
- Java并发之CyclicBarria的使用(二)
Java并发之CyclicBarria的使用(二) 一.简介 之前借助于其他大神写过一篇关于CyclicBarria用法的博文,但是内心总是感觉丝丝的愧疚,因为笔者喜欢原创,而不喜欢去转载一些其他的文 ...
- MongoRepository动态代理及jpa方法解析源码分析
public interface FzkRepository extends MongoRepository<Fzk, String> { Fzk findByName(String na ...
- maven入门学习(一)
一.maven介绍 1.软件开发中我们为什么要使用maven呢?(纯属个人体会观点,如有错误,敬请指正) (1)其一,企业岗位需求,目前的IT开发招聘岗位上,基本都要求会使用maven. ...
- Linux 进程管理 进程优先级管理
Linux进程优先级 Linux 是一个多用户.多任务的操作系统,系统中通常运行着非常多的进程.但是 CPU 在一个时钟周期内只能运算一条指令(现在的 CPU 采用了多线程.多核心技术,所以在一个时钟 ...
- CMSIS_OS中osMailPut 和 osMessagePut 的问题
1. 背景 为了屏蔽不同OS之间的差别,ARM公司开发了一套OS接口--CMSIS_OS. 在使用STM32 cube生成的free rtos工程中,遇到一些问题. 问题1:osMessageGet ...
- 基于Bootstrap的日历控件和日期选择插件
在线演示 本地下载
- [POI2013]BAJ-Bytecomputer
题目描述 A sequence of integers from the set is given. The bytecomputer is a device that allows the foll ...
- Java中sleep()与wait()的区别
第一种解释: 功能差不多,都用来进行线程控制,他们最大本质的区别是:sleep()不释放同步锁,wait()释放同步缩. 还有用法的上的不同是:sleep(milliseconds)可以用 ...
- 换个思维,boot结合vue做后台管理
可以添加,可以删除.动态的添加数据. 不用操作dom,只要操作json数据即可. <form class="form-horizontal addForm" id=" ...