专栏首页TheOneGIS空间站C#中的单元测试

C#中的单元测试

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).

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Silverlight中的三维效果和3D动画

    本文是参考MSDN对Silverlight中的透视转换做的一个小结(官方MSDN中文版的翻译个人觉得其中有些小问题)。

    TheOneGIS
  • 英文中常见连读规律总结

    前一个辅音音素是:/p/、/b/、/t/、/d/、/k/、/g/时,失去爆破,即只做口型不发音

    TheOneGIS
  • C++中遍历数组

    首先,来看C++中一个有用的操作符sizeof。sizeof操作符的作用是返回一个对象或类型名的长度,返回值得类型为size_t,长度的单位是字节。

    TheOneGIS
  • 算法与数据结构algorithm

    算法与数据结构 《Data structures》 介绍:高级数据结构大全,基本算法:二叉树等 《基于用户投票的排名算法(一):Delicious和Hacker...

    Albert陈凯
  • 0584-5.16.1-如何卸载CDSW1.5

    Fayson在上一篇文章中介绍了如何将CDSW1.4.2升级到CDSW1.5,参考《0573-5.16.1-如何将CDSW从1.4.2升级到1.5》,期间还碰到...

    Fayson
  • Android 关于WebView全方面的使用(项目应用篇)

    WebView的使用已经是老生常谈了,看到很多文章说了用法,但我很少看到全的或者是项目中可以直接使用的,都是看了很多后,自己把功能都集合在一起。这里是一份比较全...

    Jingbin
  • Jenkins+Gogs(git仓库)系列12:构建Maven\Gradle\前端JS项目(暂时完结)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 ...

    MyJie
  • 十分钟搞定自动化构建 | 码云周刊第 57 期

    1. 项目名称:轻量级跨平台自动构建工具 xmake ? 项目简介:XMake 是一个基于 Lua 的轻量级跨平台自动构建工具,支持在各种主流平台上构建项目。...

    码云Gitee
  • 数组

    / public class Demo01 { public static void main(String[] args) { //数据类型[] 数组名...

    葆宁
  • Java开发环境不再需要配置classpath

    之前发布了关于java开发环境配置的文章,经过与网友的交流,我了解到在jdk1.5以后,java开发环境配置的时候,确实不需要对classpath进行配置,查阅...

    BWH_Steven

扫码关注云+社区

领取腾讯云代金券