博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#常用单元测试框架比较:XUnit、NUnit和Visual Studio(MSTest)
阅读量:6720 次
发布时间:2019-06-25

本文共 1172 字,大约阅读时间需要 3 分钟。

     做过单元测试的同学大概都知道以上几种测试框架,但我一直很好奇它们到底有什么不同,然后搜到了一篇不错的文章清楚地解释了这几种框架的最大不同之处。

     地址在这里:

     简而言之,三者是非常相似的,如下所示:

1 [TestCase(1)] 2 [TestCase(2)] 3 [TestCase(3)] 4 [TestCase(4)] 5 public void FireMultipleTimes(int fireCount) 6 { 7     Bug bug = new Bug(); 8     Raygun gun = new Raygun(); 9 10     for(int i = 0; i < fireCount; i++) 11     {12         gun.FireAt(bug);13     }14 15     if (fireCount >= 3) 16     {17         Assert.IsFalse(gun.HasAmmo());18     }19     else 20     {21         Assert.IsTrue(gun.HasAmmo());22     }23 }

     上面是NUnit的,XNunit也有类似的方法。这篇文章非常适合刚入门单元测试的同学看。

     不过包括Abp在内的开源框架用的都是XUnit或NUnit。

     在网上调查了一下,关于MSTest的负面评论还是比较多的,最主要的问题就在于MSTest的弹性不够好,它无法在非微软的平台上运行单元测试,不过在 .Net Core日渐成熟的今天,我觉得现在已经不是问题了。如下MSTest的测试代码:

1 [TestClass] 2 public class UnitTest1 3 { 4     [DataTestMethod] 5     [DataRow(1, 2, 2)] 6     [DataRow(2, 3, 5)] 7     [DataRow(3, 5, 8)] 8     public void AdditionTest(int a, int b, int result) 9     {10         Assert.AreEqual(result, a + b);11     }12 }

     现在来看,几乎这些框架都没差了,在StackOverflow看到一条我很赞同的看法:

     其实不用顾虑那么多,随便选择吧,MSTest对Vs的集成是最好的,而且也很容易上手,如果哪一天碰到它所无法解决的事情,切换到其他框架也非常简单,仅仅只是Nuget下个包,换下特性而已。

 

转载链接:

转载于:https://www.cnblogs.com/supersnowyao/p/8478186.html

你可能感兴趣的文章
二级指针,指针数组和数组指针
查看>>
我的友情链接
查看>>
cobbler之蟒蛇监控实现监控系统安装进度
查看>>
zookeeper 原理(转)
查看>>
我在印尼工作的日子-初来乍到
查看>>
Linux/安卓+SPI以太网项目
查看>>
PostgreSQL MySQL 的一次速度测试
查看>>
C 语言程序设计
查看>>
Dns信息收集工具集合
查看>>
MQ产品比较-ActiveMQ-RocketMQ
查看>>
yii框架cridview的ajax更新
查看>>
STL容器选择
查看>>
android:layout_gravity 和 android:gravity 的区别
查看>>
嵌入式C题
查看>>
maven学习笔记
查看>>
说说Java线程池
查看>>
Linux挂载命令mount用法及参数详解
查看>>
Nginx 动静分离
查看>>
MySQL如何实现数组功能
查看>>
Android第四十七期 - WheelView沉浸式菜单栏
查看>>