NUnit入门篇

简介:
< DOCTYPE html PUBLIC -WCDTD XHTML TransitionalEN httpwwwworgTRxhtmlDTDxhtml-transitionaldtd>

一.打开VS2005
二.点击菜单“文件”->“新建项目”,打开“新建项目”对话框:在该对话框中,C#的“项目类型”命名为NUnitPerson
新建一个Person.cs,键入如下代码:

namespace NUnitPerson
{
    public class Person
    {
        private string pid = null;
        private string pname = null;

        public string id
        {
            get
            {
                return pid;
            }

            set
            {
                pid = value;
            }
        }

        public string name
        {
            get
            {
                return pname;
            }

            set
            {
                pname = value;
            }
        }
    }
}

三.再新建一个“项目类型”,命名为NUnitPersonTest
新建一个PersonTest,并键入如下代码(注意,你得引入NUnit.Framework和测试项目NUnitPerson)

using System;
using System.Collections.Generic;
using System.Text;
using NUnit.Framework;
using NUnitPerson;

namespace NUnitPersonTest
{
    [TestFixture]
    public class BookTest
    {
        Person person = null;

        [SetUp]
        public void Init()
        {
            Console.WriteLine("测试开始!");
            person = new Person ();
            Console.WriteLine("person对象被初始化!");
        }

        [Test]
        public void testId()
        {
            person .id = "001";/设置id属性的值为
           使用Assert查看id属性的值是否为
            Assert.AreEqual("001", person .id);
            Console.WriteLine("id属性被测试!");
        }

        [Test]
        public void testName()
        {
            person .name = "RONALDO";/设置name属性的值为RONALDO
           使用Assert查看name属性的值是否为BECKHAM,这是个必然出现错误的测试
            Assert.AreEqual("BECKHAM", person .name);
            Console.WriteLine("name属性被测试!");
        }

        [TearDown]
        public void Dispose()
        {
            Console.WriteLine("person对象将被清理!");
            person= null;
            Console.WriteLine("测试结束!");
        }
    }
}
编译以上项目

打开NUnit GUI 测试工具

NUnit入门篇 - netcorner - netcorner的博客
选择"文件"下的"打开项目",选择你刚刚写入的NUnitPersonTest所在目录的dll

选择PersonTest类,点击运行,即可看到测试结果,

NUnit入门篇 - netcorner - netcorner的博客
可以看到testName不错,testId是正常的

对测试用例的UnitPersonTest的语法介绍

TestFixture,用来标识要测试的用便,还有Init和Dispose这两个方法,并分别使用SetUp和TearDown属性来进行标识,前者在每个测试方法开始之前执行,多用来做初始化;后者在每个测试方法完成之后执行,多用来清理资源。注意,这两个方法的名称并没有什么限制,但必须用SetUp和TearDown属性进行标识。另外,NUnit还提供了TestFixtureSetUp和TestFixtureTearDown属性,功能与SetUp和TearDown类似,但前者是在所有用例执行之前做初始化、之后做清理,而后者是在每个用例执行之前做初始化、之后做清理。
下面简单介绍一下上边用到的静态类NUnit.Framework.Assert。该类主要包含20个方法:
1.AreEqual()和AreNotEqual()方法,用来查看两个对象的值是否相等或不等,与对象比较中使用的Equals()方法类似。
2.AreSame()和AreNotSame()方法,用来比较两个对象的引用是否相等或不等,类似于通过“Is”或“==”比较两个对象。
3.Contains()方法,用来查看对象是否在集合中,集合类型应与System.Collections.IList兼容。示例:
Dim o As New Object
Dim al As New ArrayList
al.Add(o)
Assert.Contains(o, al)
4.Greater()和Less()方法,用来比较两个数值的大小,前者相当于大于号(>),后者相当于小于号(<)。
5.IsInstanceOfType()和IsNotInstanceOfType()方法,用来判断对象是否兼容于指定类型。示例:
Dim t As Type = New Object().GetType
Dim s As String = ""
Assert.IsInstanceOfType(t, s)
由于Object是.net中所有类型的基类,String类型兼容于Object,因此这个示例是能够运行通过的。而下边这个示例运行将是失败的:
Dim t As Type = New ArrayList().GetType
Dim s As String = ""
Assert.IsInstanceOfType(t, s)
6.IsAssignableFrom()和IsNotAssignableFrom()方法,用来判断对象是否是指定类型的实例。示例:
Dim t As Type = New Object().GetType
Dim s As String = ""
Assert.IsAssignableFrom(t, s)
这个示例与之前的示例是一样的,但由于字符串s不是Object类型的,因此无法运行通过。而下边这个实例可以运行通过:
Dim t As Type = New String("").GetType
Dim s As String = ""
Assert.IsAssignableFrom(t, s)
7.IsFalse()和IsTrue()方法,用来查看变量是是否为false或true,如果IsFalse()查看的变量的值是false则测试成功,如果是true则失败,IsTrue()与之相反。
8.IsNull()和IsNotNull()方法,用来查看对象是否为空和不为空。
9.IsEmpty()和IsNotEmpty()方法,用来判断字符串或集合是否为空串或没有元素,其中集合类型应与ICollection兼容。
10.IsNaN()方法,用来判断指定的值是否不是数字。
11.Fail()方法,意为失败,用来抛出错误。我个人认为有两个用途:首先是在测试驱动开发中,由于测试用例都是在被测试的类之前编写,而写成时又不清楚其正确与否,此时就可以使用Fail方法抛出错误进行模拟;其次是抛出意外的错误,比如要测试的内容是从数据库中读取的数据是否正确,而导致错误的原因却是数据库连接失败。
12.Ignore()方法,意为忽略,用来忽略后续代码的执行,用途可以参考Fail()方法。
此外,NUnit还提供了一个专用于字符串的静态类NUnit.Framework. StringAssert,该类主要包含4个方法:
1.Contains()方法,用来查看指定的第二个字符串中是否包含了第一个字符串。
2.StartsWith ()和EndsWith ()方法,分别用来查看指定的第一个字符串是否位于第二个字符串的开头和结尾。
3.AreEqualIgnoringCase()方法,用来比较两个字符串是否相等

本文转自 netcorner 博客园博客,原文链接:http://www.cnblogs.com/netcorner/archive/2008/06/16/2912133.html  ,如需转载请自行联系原作者

相关文章
|
3月前
|
测试技术 API 开发者
.NET单元测试框架大比拼:MSTest、xUnit与NUnit的实战较量与选择指南
【8月更文挑战第28天】单元测试是软件开发中不可或缺的一环,它能够确保代码的质量和稳定性。在.NET生态系统中,MSTest、xUnit和NUnit是最为流行的单元测试框架。本文将对这三种测试框架进行全面解析,并通过示例代码展示它们的基本用法和特点。
307 8
|
5月前
|
Java 测试技术 Python
《手把手教你》系列基础篇(七十七)-java+ selenium自动化测试-框架设计基础-TestNG依赖测试- 上篇(详解教程)
【6月更文挑战第18天】TestNG是一个Java测试框架,它允许在测试方法间定义执行顺序和依赖关系。当不指定依赖时,TestNG默认按方法名首字母排序执行。`@Test`注解的`dependsOnMethods`属性用于指定方法依赖,如`test1`依赖`test4`,则实际执行顺序为`test4`、`test2`、`test3`、`test1`。如果依赖的方法失败,后续依赖的方法将被跳过。此外,`dependsOnGroups`属性通过组名指定依赖,方便管理多个相关测试方法。通过`groups`定义方法所属组,然后在其他方法中用`dependsOnGroups`引用这些组。
46 5
|
4月前
|
XML 测试技术 数据格式
《手把手教你》系列基础篇(八十三)-java+ selenium自动化测试-框架设计基础-TestNG测试报告-下篇(详解教程)
【7月更文挑战第1天】使用TestNG自定义报告的简要说明: - TestNG提供默认的HTML和XML报告,但可通过实现IReporter接口创建自定义报告。 - 自定义报告器类需扩展`CustomReporter.java`,实现`generateReport()`方法,接收XML套房、测试结果及输出目录作为参数。
49 0
|
算法 图形学
Unity 开发入门指南
学习 Unity 开发接近一年了,从开始对 Unity 一无所知,到现在能模仿制作出一个完整游戏,对个人成长来说,也算是一个不大不小的里程碑。这篇是对自己学习的总结与回顾,希望对 Unity 初学者有所帮助。
1321 0
|
测试技术 持续交付 容器
|
测试技术 开发工具 IDE
|
测试技术 程序员 数据库连接