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
每个方法测试完成后都执行我
测试完成后执行一次

最新文章

  1. 嵌入式Linux驱动学习之路(十三)按键驱动-异步通知
  2. Ajax 密码验证
  3. [Eclipse] Eclipse字体问题解决
  4. malloc函数详解
  5. 我对序列化(Serializable)的理解
  6. zepto源码--整体框架--学习笔记
  7. 解决 MyEclipse 10 中 JSp页面 “return false” 报错问题
  8. JavaScript 是世界上最好的语言?
  9. WPF 三态按钮(PNG贴图)
  10. 接上一篇中记录Echarts进度环使用【不同状态不同进度环颜色及圈内文字】--采用单实例业务进行说明
  11. 一种C语言实现面向对象特性的继承,多态
  12. Python平时代码的一些知识
  13. 1-tomcat简介
  14. 自学工业控制网络之路1.6-典型的现场总线介绍Interbus
  15. metasploit framework(三):exploit模块
  16. 使用Newtonsoft进行JSON序列化时将枚举序列化为字符串的方法
  17. python 下载虾米音乐
  18. 在懂得BREW接口的原理之后, 那么该知道BREW接口是如何声明和实现了
  19. Linux 新手入门常用命令
  20. Microsoft Visual C++ Redistributable Package下载

热门文章

  1. LeetCode——324. 摆动排序 II
  2. 素小暖讲JVM:Eclipse运行速度调优
  3. 吴裕雄--天生自然 PHP开发学习:面向对象
  4. PAT Advanced 1084 Broken Keyboard (20) [Hash散列]
  5. springboot+mybatis+通用mapper+多数据源(转载)
  6. centos 下使用 pytesseract 识别文字
  7. flask框架-上
  8. 踏出第一步——安装并跑通python程序
  9. linux服务器开放防火墙和端口,以及查询状态
  10. QMessageBox按钮自定义文字