C# 单元测试

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菜单中找到相关选项。

C# 单元测试_第1张图片

C# 单元测试_第2张图片

运行结果:
C# 单元测试_第3张图片

3 参考资料

Github-nunit
Resharper单元测试帮助文档
测试框架nunit之assertion断言使用详解
MSTest、NUnit、xUnit.net 属性和断言对照表
Stack overflow上关于单元测试失败问题的相关讨论

你可能感兴趣的:(C#)