unit-testing - NUnit、MbUnit、MSTest、xUnit.net

标签 unit-testing nunit mstest mbunit xunit.net

有很多用于 .NET 的单元测试框架。我发现了这个小功能比较:http://xunit.github.io/docs/comparisons.html

现在我要为我们选择最好的一个。但如何呢?有关系吗?哪一个最有前瞻性并且背后有良好的动力?我应该关心这些功能吗?虽然 xUnit 似乎是最现代的并且专门为 .NET 设计的,但 NUnit 似乎又是被广泛接受的一种。 MSTest 再次已集成到 Visual Studio 中...

最佳答案

我知道这是一个旧线程,但我想我应该为 xUnit.NET 投票。虽然提到的大多数其他测试框架都几乎相同,但 xUnit.NET 采用了一种非常独特、现代且灵活的方法来进行单元测试。它改变了术语,因此您不再定义 TestFixtures 和测试...您可以指定有关代码的事实和理论,这与从 TDD/BDD 角度来看测试的概念更好地集成。

xUnit.NET 也具有极强的可扩展性。它的 FactAttribute 和 TraitAttribute 属性类不是密封的,并提供可重写的基本方法,使您可以对这些属性装饰的方法的执行方式进行大量控制。虽然默认形式的 xUnit.NET 允许您使用其测试方法编写类似于 NUnit 测试装置的测试类,但您根本不限于这种形式的单元测试。您可以自由扩展框架以支持 BDD 风格的关注/上下文/观察规范,如图 here 所示。 。

xUnit.NET 还通过其理论属性和相应的数据属性直接支持开箱即用的拟合式测试。适合的输入数据可以从 Excel、数据库甚至自定义数据源(例如 Word 文档)加载(通过扩展基本数据属性)。这使您可以利用单个测试平台进行单元测试和集成测试,在减少产品依赖性和所需培训方面可以发挥巨大作用。

其他测试方法也可以使用 xUnit.NET 来实现......可能性是无限的。结合另一个非常具有前瞻性的模拟框架,Moq ,两者创建了一个非常灵活、可扩展且功能强大的平台来实现自动化测试。

关于unit-testing - NUnit、MbUnit、MSTest、xUnit.net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/261139/

相关文章:

asp.net-mvc - 编码 UI 测试项目未触发 Jquery AJAX 成功

.net - Visual Studio 中的 MSTest 项目 : which files to commit to version control?

c# - 我们如何在 MSTest 中运行具有多个参数的测试方法?

testing - 让微软测试框架使用 Spring.Net 创建测试类

java - 通过调用数据库来 stub /模拟方法的问题

c# - 测试 Entity Framework 存储库 Update() 时 Moq 测试空引用异常

c# - 改进大量测试用例的测试语法

c# - nUnit Assert.That(method,Throws.Exception) 不捕获异常

unit-testing - Erlang 通用测试 : Get test runtime stats across all test suites

c# - Rhino Mocks 的 AssertWasCalled 在测试方法中模拟的属性分配