C#常用单元测试框架比较:XUnit、NUnit和Visual Studio(MSTest)
做过单元测试的同学大概都知道以上几种测试框架,但我一直很好奇它们到底有什么不同,然后搜到了一篇不错的文章清楚地解释了这几种框架的最大不同之处。
地址在这里:http://www.tuicool.com/articles/F3eEn2j
简而言之,三者是非常相似的,如下所示:
[TestCase()]
[TestCase()]
[TestCase()]
[TestCase()]
public void FireMultipleTimes(int fireCount)
{
Bug bug = new Bug();
Raygun gun = new Raygun(); for(int i = ; i < fireCount; i++)
{
gun.FireAt(bug);
} if (fireCount >= )
{
Assert.IsFalse(gun.HasAmmo());
}
else
{
Assert.IsTrue(gun.HasAmmo());
}
}
上面是NUnit的,XNunit也有类似的方法。这篇文章非常适合刚入门单元测试的同学看。
不过包括Abp在内的开源框架用的都是XUnit或NUnit。
在网上调查了一下,关于MSTest的负面评论还是比较多的,最主要的问题就在于MSTest的弹性不够好,它无法在非微软的平台上运行单元测试,不过在 .Net Core日渐成熟的今天,我觉得现在已经不是问题了。如下MSTest的测试代码:
[TestClass]
public class UnitTest1
{
[DataTestMethod]
[DataRow(, , )]
[DataRow(, , )]
[DataRow(, , )]
public void AdditionTest(int a, int b, int result)
{
Assert.AreEqual(result, a + b);
}
}
现在来看,几乎这些框架都没差了,在StackOverflow看到一条我很赞同的看法:
其实不用顾虑那么多,随便选择吧,MSTest对Vs的集成是最好的,而且也很容易上手,如果哪一天碰到它所无法解决的事情,切换到其他框架也非常简单,仅仅只是Nuget下个包,换下特性而已。
转载链接:https://www.cnblogs.com/RobotZero/p/6732728.html
C#常用单元测试框架比较:XUnit、NUnit和Visual Studio(MSTest)的更多相关文章
- C#常用单元测试框架比较:XUnit, NUnit, 和 Visual Studio(MSTest)
做过单元测试的同学大概都知道以上几种测试框架,但我一直很好奇它们到底有什么不同,然后搜到了一篇不错的文章清楚地解释了这几种框架的最大不同之处. 地址在这里:http://www.tuicool.com ...
- C#常用的单元测试框架
C#常用的单元测试框架有XUnit .NUnit .MSTest 做过单元测试的同学大概都知道以上几种测试框架,这几种框架除了标注测试类和方法的特性用的不一样之外,XUnit 和 NUnit 是非常相 ...
- [测试]单元测试框架NUnit
说到测试,相信大家都或多或少了解. 按照各自分类,就自己知道包括 A.单元测试.集成测试.系统测试 B.白盒测试.黑盒测试 C.压力测试.性能测试.安全测试 ...... 反正是太多太多.就做开发以来 ...
- Visual Studio 2012使用NUnit单元测试实践01,安装NUnit并使用
在Visual Studio 2012中,默认使用Microsoft自带的MS-Test测试框架.但,Visual Studio同样允许使用第三方测试框架,比如NUnit,xUnit,MbUnit,等 ...
- Visual Studio的安装与单元测试
一.Visual Studio的安装 由于上学期重装了win10系统,以前使用的vc++6.0不能够正常使用,所以直接就安装了Visual Studio 2015,安装的时候就直接按照提示的步骤进行安 ...
- 第三次作业 (一)----------------------Visual Studio 2015的安装及单元测试
这是第三周的第一个作业,Visual Studio 2015的安装及单元测试. 我的电脑之前安装过Visual Studio 2015,但是在安装过程中我从来没有留意过各种注意事项,所集正好借此作业的 ...
- Microsoft Visual Studio 2013 的安装及单元测试
题目:练习教科书第22~25页单元测试练习,要求自行安装Visual Studio开发平台,版本至少在2010以上,要求把程序安装过程和练习过程写到博客上,越详细越好,要图文并茂. 安装过程: 1.下 ...
- 基于.NET平台常用的框架整理(转)
自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的 学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累了一些开源的组件,就目前想到的先整理于此,如果再想到, ...
- 【转】基于.NET平台常用的框架整理
自从学习.NET以来,优雅的编程风格,极度简单的可扩展性,足够强大开发工具,极小的学习曲线,让我对这个平台产生了浓厚的兴趣,在工作和学习中也积累 了一些开源的组件,就目前想到的先整理于此,如果再想到, ...
随机推荐
- 2019.02.16 spoj Query on a tree IV(链分治)
传送门 题意简述: 捉迷藏强化版(带有边权,可以为负数) 思路:好吧这次我们不用点分树,我们用听起来更屌的链分治. 直接把树剖成若干条重链,这样保证从任意一个点跳到根节点是不会跳超过logloglog ...
- SignalR 服务器系统配置要求
SignalR 所支持的服务器版本..NET Framework 版本.IIS和其他组件. SignalR操作系统要求 SignalR组件能够运行在下面的服务器和客户端操作系统.需要注意的是使用Web ...
- C#常用代码(更新中)
文件(夹)的相关操作 新建文件夹 If(!Directory.Exist(路径)) Directory.CreateDirectory(路径); 删除文件夹 Directory.Delete(路径,t ...
- SSM_CRUD新手练习(7)Spring单元测试分页请求
好久没写这个系列博客了是因为本人去公司实习去了,公司用的是Spring+SpingMvc+Hibernate现在有时间了不管怎么样继续把这个项目写完. 因为机器的原因,我的环境变成了IDEA+orac ...
- Hive记录-Beeline常用操作命令
Beeline和其他工具有一些不同,执行查询都是正常的SQL输入,但是如果是一些管理的命令, 比如进行连接,中断,退出,执行Beeline命令需要带上"!",不需要终止符.常用命令 ...
- [UWP] 用 AudioGraph 来增强 UWP 的音频处理能力
Audio Graph AudioGraph 是 Windows.Media.Audio 命名空间下提供的音频处理接口之一. 可以通过 AudioGraph 的静态方法 CreateAsync 来实例 ...
- Android开发工程师文集-相关控件的讲解,五大布局
前言 大家好,给大家带来Android开发工程师文集-相关控件的讲解,五大布局的概述,希望你们喜欢 TextView控件 TextView控件有哪些属性: android:id->控件的id a ...
- Android之ListView,AsyncTask,GridView,CardView,本地数据存储,SQLite数据库
版权声明:未经博主允许不得转载 补充 补充上一节,使用ListView是用来显示列表项的,使用ListView需要两个xml文件,一个是列表布局,一个是单个列表项的布局.如我们要在要显示系统所有app ...
- idea : shorten command line
[官方文档]:IntelliJ IDEA 2017.3 EAP: Configurable command line shortener and more 如果类路径太长,或者有许多VM参数,程序就无 ...
- Android分享内容和接收分享内容小小实现
先来说说分享,毕竟没有分享何来接收分享可谈? 分享目前已实现的有两种方式:后台代码实现.ShareActionProvider实现,接着先说通过代码实现 Intent intent=new Inten ...