Nunit单元测试工具使用教程
一、基础知识:
[TestFixture]表示:类包含了测试代码(这个特性可以被继承)。这个类必须是公有的,这个类还必须有一个默认构造函数。
[Test]表示它是一个测试方法。测试方法的返回值必须为void并且不能带有参数
[SetUp]属性:用来标识方法,在开始所有测试之前执行,用来在测试前初始化一些资源,比如初始化类。
[TearDown]属性:用来标识方法,在所有测试完成之后执行,用来释放一些资源。[Ignore]属性:用来标识方法,指示这个方法由于某些原因暂时不需要测试(比如没有完成相关代码)
二、Nunit工具的使用
1、 安装Nunit ,可以去官方网站下载最新版本(http://www.nunit.org/)
2、 在“工程属性”里->配置属性->调试->启动操作里把调试模式改为“程序”,然后把“启动应用程序”设置为你的nunit的gui的exe,
3、 调用命令行程序(路径=系统盘:\Program Files\Microsoft Visual Studio 8\SDK\v2.0\Bin\) sn.exe -k mytest.snk
然后把创建好的mytest.snk加入的工程中。设置参见下图(选中工程右键--Properties--Signning)
4、 设置FRIMLEC.UnitTest为启动项,然后在代码里设置断点,直接点运行,就ok了。
5、 单步调试过程中
单元测试类需要继承与DatabaseFixture类
6、 单元测试成功

7、 单元测试失败
三、Nunit常用类和方法
Assert(断言):
如果断言失败,方法将没有返回,并且报告一个错误。
如果一个方法中包括了多个断言,在失败的断言之后的所有断言将不会被执行。基于这个原因,最好是为每个测试的断言使用try语句。
1、法测试二个参数是否相等
Assert.AreEqual( int expected, int actual );
Assert.AreEqual( decimal expected, decimal actual );
。。。。
2、测试二个参数是否引用同一个对象
Assert.AreSame( object expected, object actual );
Assert.AreNotSame( object expected, object actual );
3、测试一个对象是否被一个数组或列表所包含
Assert.Contains( object anObject, IList collection );
比较断言:
4、测试一个对象是否大于另一个对象
Assert.Greater( int arg1, int arg2 );
5、法测试一个对象是否小于另一个对象
Assert.Less( int arg1, int arg2 );
类型断言:
Assert.IsInstanceOfType( Type expected, object actual );
条件测试:
Assert.IsTrue( bool condition );
Assert.IsFalse( bool condition);
Assert.IsNull( object anObject );
Assert.IsNotNull( object anObject );
Assert.IsNaN( double aDouble );
Assert.IsEmpty( string aString );
Assert.IsNotEmpty( string aString );
Assert.IsEmpty( ICollection collection );
Assert.IsNotEmpty( ICollection collection );
StringAssert.Contains( string expected, string actual );
StringAssert.StartsWith( string expected, string actual );
StringAssert.EndsWith( string expected, string actual );
StringAssert.AreEqualIgnoringCase( string expected, string actual );
四、其它资料(NUnit从入门到熟悉)
NUnit2.0详细使用方法 http://confach.cnblogs.com/archive/2005/06/20/177817.aspx
http://tech.ddvip.com/2009-03/1237792261111999.html
http://tech.ddvip.com/2009-03/1237792543112000.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· SQL Server 2025 AI相关能力初探
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库