0 前言
初次接触C#单元测试,本文主要用于简单记录需要的工具以及初步使用方法。供参考。
1 开发坏境及插件
- VS2013 C#
- Resharper 10.0.0.2
- NUnit
注意:
- Resharper必须是版本10以上,测试发现低版本会出现不匹配情况,会报错。或许是需要对应低版本的NUnit。
- NUnit可以直接使用VS自带的 Nuget 安装:
Install-Package NUnit
2 使用
2.1 代码
需要在待测试类名上添加 TestFixture
标记,在对应方法上添加 Test
标记。
using System;
using System.Linq;
using NUnit.Framework; //添加引用
namespace NunitTestProject
{
[TestFixture]
class Program
{
static void Main(string[] args)
{
}
static string ReverseString(string str)
{
if (string.IsNullOrEmpty(str))
{
throw new ArgumentNullException("字符串不能为空");
}
if (str.Length == 1)
{
return str;
}
return str.Last() + ReverseString(str.Substring(0, str.Length - 1));
}
[Test]
public static void ReverseStringTest()
{
string str = "123456789";
string result = ReverseString(str);
Assert.AreEqual("987654321",result);
}
}
}
注意:
被测试的方法必须是public
的。
2.2 运行单元测试
点击左侧标记即可运行该测试函数,或者在Resharper菜单中找到相关选项。
运行结果:
3 参考资料
Github-nunit
Resharper单元测试帮助文档
测试框架nunit之assertion断言使用详解
MSTest、NUnit、xUnit.net 属性和断言对照表
Stack overflow上关于单元测试失败问题的相关讨论