Nunit说明及简单DEMO
using System;
using System.Collections.Generic;
using System.Text;
using NUnit.Framework; //安装好NUnit后,环境是XP的,发现无法启动,修改一下配置后才能运行 //修改NUnit.exe.config,在
//1. 在 <configuration> 下 加
// <startup>
// <requiredRuntime version="v4.0.30319" />
// </startup>
// 2. 在 <runtime> 加 // <runtime> // ……
// <loadFromRemoteSources enabled="true" />
// ……
// </runtime>
namespace Nunit
{
[TestFixtureAttribute]
//用来修饰测试类。这个属性标记一个类包含了测试方法。
//被TestFixtureAttribute修饰的类需满足以下限制
// a.必须是一个public类型,否则NUnit不会识别它。
// b.它必须有一个缺省的构造子,否则Nunit不能构建他。
// c.构造子不应该有任何方面的负面影响,因为在一个对话的过程中,NUnit可能构造类多次。
public class Program
{
int a = ;
int b = ;
[Test]
// 用来修饰测试方法。Test属性标记某个类的某个方法为一个测试方法,而且此类必需已经标记为一个TestFixture
static void Main(string[] args)
{
}
//用来修饰方法。所属的类必需已经标记为一个TestFixture。一个TestFixture可以仅有一个SetUp方法。如果有多个定义, TestFixture也会编译成功,但是测试不会运行。SetUpAttribute标记的方法是在每个测试方法被调用之前来完成的。
[TestFixtureSetUp]
//用来修饰方法。所属的类必需已经标记为一个TestFixture。这些个属性标记的方式在fixture任何测试执行之前完成。 TestFixture可以仅有一个TestFixtureSetUp方法。如果定义了多个,TestFixture可以成功编译,但是测试不会被执行。
public void TextInital()
{//初始化a,可以初始化数据连接等
a = ;
Console.WriteLine("测试开前执行一次");
Console.WriteLine("a=10");
}
// 用来修饰方法。所属的类必需已经标记为一个TestFixture。这些个属性标记的方式在fixture任何测试执行之后完成。TestFixture 可以仅有一个TestFixtureTearDownAttribute方法。如果定义了多个,TestFixture可以成功编译,但是测试不会被执行。 [TestFixtureTearDown] public void TextDispose()
{//初始化a,可以初始化数据连接等 Console.WriteLine("测试完成后执行一次");
} [SetUp]
public void BeforeEvery() {
b=;
Console.WriteLine("b=1");
Console.WriteLine("每个方法测试开始前都执行我");
} // 用来修饰方法。所属的类必需已经标记为一个TestFixture。一个TestFixture可以仅有一个TearDown方法。如果有多个定义, TestFixture也会编译成功,但是测试不会运行。被TearDownAttribute修饰的方法是每个测试方法被调用之后来执行的。 [TearDown]
public void afterEvery() {
b = ;
Console.WriteLine("b = 0");
Console.WriteLine("每个方法测试完成后都执行我");
} [Test]
public void Add()
{
bool t = a == ;
Assert.AreEqual(true, t);
} [Test, ExpectedException(typeof(ArgumentException))]
public void Sub()
{
int a = ;
int b = / a;
Assert.AreEqual(true, true);
} //修饰方法或修饰类。用来把测试分组,可以使用NUnit的Categories选项卡选择要测试的组,或排除一些组。
[Test]
[Category("group1")]
public void g1a()
{ Assert.AreEqual(true, true);
}
[Test]
[Category("group1")]
public void g1b()
{
Assert.AreEqual(true, true);
} [Test]
[Category("group2")]
public void g2a()
{ Assert.AreEqual(false, true);
}
[Test]
[Category("group2")]
public void g2b()
{
Assert.AreEqual(false, true);
} [Test]
public void withfixture()
{
Assert.AreEqual(true, (b == ));
} [Test]
[Explicit]
//用来修饰类或方法。Explicit属性会忽略一个测试或测试Fixture,直到它被显式的选择运行。。如果test和test fixture在执行的过程中被发现,就忽略他们。所以,这样一来进度条显示为黄色,因为有test或test fixture忽略了。
public void withoutfixture()
{
Assert.AreEqual(true, (b == ));
} [Test]
[Ignore]
// 用来修饰类或方法。由于种种原因,有一些测试我们不想运行.当然,这些原因可能包括你认为这个测试还没有完成,这个测试正在重构之中,这个测试的需求不是太明确.但你有不想破坏测试,不然进度条可是红色的哟.怎么办?使用Ignore属性.你可以保持测试,但又不运行它们。
//这个特性用来暂时不运行一个测试或fixture。比起注释掉测试或重命名方法,这是一个比较好的机制,因为测试会和余下的代码一起编译,而且在运行时有一个不会运行测试的标记,这样保证不会忘记测试。 public void Ignore()
{
Assert.AreEqual(true, true);
} }
}

执行结果如下
测试开前执行一次
a=10
***** Nunit.Program.Add
b=1
每个方法测试开始前都执行我
b = 0
每个方法测试完成后都执行我
***** Nunit.Program.g1a
b=1
每个方法测试开始前都执行我
b = 0
每个方法测试完成后都执行我
***** Nunit.Program.g1b
b=1
每个方法测试开始前都执行我
b = 0
每个方法测试完成后都执行我
***** Nunit.Program.Sub
b=1
每个方法测试开始前都执行我
b = 0
每个方法测试完成后都执行我
***** Nunit.Program.withfixture
b=1
每个方法测试开始前都执行我
b = 0
每个方法测试完成后都执行我
测试完成后执行一次
Nunit说明及简单DEMO的更多相关文章
- 设计模式之单例模式的简单demo
/* * 设计模式之单例模式的简单demo */ class Single { /* * 创建一个本类对象. * 和get/set方法思想一样,类不能直接调用对象 * 所以用private限制权限 * ...
- Spring的简单demo
---------------------------------------- 开发一个Spring的简单Demo,具体的步骤如下: 1.构造一个maven项目 2.在maven项目的pom.xml ...
- 使用Spring缓存的简单Demo
使用Spring缓存的简单Demo 1. 首先创建Maven工程,在Pom中配置 <dependency> <groupId>org.springframework</g ...
- Managed DirectX中的DirectShow应用(简单Demo及源码)
阅读目录 介绍 准备工作 环境搭建 简单Demo 显示效果 其他 Demo下载 介绍 DirectX是Microsoft开发的基于Windows平台的一组API,它是为高速的实时动画渲染.交互式音乐和 ...
- angular实现了一个简单demo,angular-weibo-favorites
前面必须说一段 帮客户做了一个过渡期的项目,唯一的要求就是速度,我只是会点儿基础的php,于是就用tp帮客户做了这个项目.最近和客户架构沟通,后期想把项目重新做一下,就用现在最流行的技术,暂时想的使用 ...
- Solr配置与简单Demo[转]
Solr配置与简单Demo 简介: solr是基于Lucene Java搜索库的企业级全文搜索引擎,目前是apache的一个项目.它的官方网址在http://lucene.apache.org/sol ...
- 二维码简单Demo
二维码简单Demo 一.视图 @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name=&qu ...
- android JNI 简单demo(2)它JNI demo 写
android JNI 简单demo(2)它JNI demo 写 一.搭建Cygwin 环境:http://blog.csdn.net/androidolblog/article/details/25 ...
- Ext简单demo示例
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...
随机推荐
- 12 Spring Data JPA:springDataJpa的运行原理以及基本操作(下)
spring data jpaday1:orm思想和hibernate以及jpa的概述和jpa的基本操作 day2:springdatajpa的运行原理 day2:springdatajpa的基本操作 ...
- day62-html-标签
前端 blog链接:http://www.cnblogs.com/liwenzhou/p/7988087.html 1.前端都有哪些内容? HTML CSS JavaScript jQuery Boo ...
- python语法基础-并发编程-线程-线程理论和线程的启动
####################### 线程介绍 ############################## """ 线程介绍 为什 ...
- Java之同步代码块处理实现Runnable的线程安全问题
/** * 例子:创建三个窗口卖票,总票数为100张.使用实现Runnable接口的方式 * * 1.问题:卖票过程中,出现了重票.错票 -->出现了线程的安全问题 * 2.问题出现的原因:当某 ...
- 并发与高并发(三)-CPU多级缓存の乱序执行优化
一.CPU多级缓存-乱序执行优化 处理器或编译器为提高运算速度而做出违背代码原有顺序的优化. 重排序遵循原则as-if-serial as-if-serial语义:不管怎么重排序(编译器和处理器为了提 ...
- 踏出第一步——安装并跑通python程序
一.首先学会安装python软件 1.在浏览器下输入安装python软件的官方网址. 点击打开链接 2.在界面上点击"Downloads"下的"Windows" ...
- BZOJ4059[Cerc2012]Non-boring sequences(扫描线/分治)
这题正解应该是扫描线,就是发现DP的区间在两个维度都为连续段,于是可以直接扫描线.但不幸的是,扫描线常数过大,无法通过本题. 考虑分治.对于分治区间[l,r],可以记录pre和nxt表示其前/后一次出 ...
- Linux 使用rpm方式安装最新mysql(5.7)步骤以及常见问题解决
第一步:下载rpm包 mysql官网下载:http://dev.mysql.com/downloads/mysql/ 但如果你的下载网速不好的话也可以点下面的链接下载自己想要的版本 http://mi ...
- 量化投资_轻松实现MATLAB蒙特卡洛方法建模
1 目录 * MATLAB随机数的产生 - Uniform,Normal & Custom distributions * 蒙特卡洛仿真 * 产生股票价格路径 * 期权定价 - 经典公式 - ...
- Linux保护机制
RELRO(RELocation Read Only) 在Linux中有两种RELRO模式:"Partial RELRO" 和 "Full RELRO".Lin ...