首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C#中的单元测试

C#中的单元测试

作者头像
卡尔曼和玻尔兹曼谁曼
发布2019-01-25 15:08:16
2.2K0
发布2019-01-25 15:08:16
举报

C#程序可以使用NUnit框架进行单元测试,NUnit是.NET语言的一个测试框架,和Java语言的JUnit同属于XUnit。

NUit官方的安装文件有msi的安装程序和不用安装的zip文件。安装msi或者使用zip中的dll可以通过NUit提供的GUI或则命令提示符进行单元测试。这里不详细叙述。

这里我介绍一个VS的插件TestDriven.NET,TestDriven.NET插件是对.NET语言在VS IDE中的一个插件里面集成了一些常用的单元测试框架,当然也包括NUit单元测试框架。所以相对NUit的GUI,TestDrive.NET框架直接集成到VS中,用起来跟方便。

首先到官网下载TestDrive.NET,有针对个人的免费版,然后进行安装,默认安装到C盘的Program Files(64位系统默认安装到Program Files(32))。

然后打开VS发现右键菜单多出了Run Test(s)等命令。

下面给出一个操作的实例:

新建工程,写要测试的函数(数组求最大值):

using System;

namespace HelloCSharp
{
    class Hello
    {
        public static int Max(int[] data)
        {
            int max = Int32.MinValue;
            for (int i = 0; i < data.Length; i++)
            {
                if (data[i] > max)
                {
                    max = data[i];
                }
            }
            return max;
        }
    }
}

工程引用上右键,选择添加引用,然后在浏览选项卡中,在C盘的TestDrive.NET的安装目录中选择NUit文件夹中的nunit.framework.dll添加引用(NUit文件夹下面有多个版本,选择最高的版本,事情而定)。

然后新建一个类,写单元测试代码:

using System;
using NUnit.Framework;
using HelloCSharp;

namespace HelloCSharp.NUnitTest
{
    [TestFixture]
    class HelloTest
    {
        [Test]
        public void MaxRun()
        {
            Assert.AreEqual(Hello.Max(new int[] {0, 2, 1, 5, 3, 7, 9}), 9);
        }
    }
}

TestFixture特性用于测试类上,Test特性用于测试方法上,使用Asset断言提供的方法进行测试。

只是在Output面板中的输出结果:

------ Test started: Assembly: HelloCSharp.exe ------

1 passed, 0 failed, 0 skipped, took 0.58 seconds (NUnit 2.6.2).
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2015年01月15日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档