小编典典

NUnit vs. MbUnit vs. MSTest vs. xUnit.net [关闭]

all

就目前而言,这个问题不适合我们的问答形式。我们希望答案得到事实、参考资料或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您认为此问题可以改进并可能重新打开,请访问帮助中心获取指导。

9 年前关闭。

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

现在我要为我们选择最好的一个。但是怎么做?有关系吗?哪一个最有未来的证明并且背后有不错的动力?我应该关心这些功能吗?虽然 xUnit
似乎是最现代的并且是专门为 .NET 设计的,但 NUnit 似乎再次被广泛接受。MSTest 再次已集成到 Visual Studio …


阅读 99

收藏
2022-03-22

共1个答案

小编典典

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

xUnit.NET 也非常可扩展。它的 FactAttribute 和 TraitAttribute
属性类不是密封的,并提供可覆盖的基本方法,使您可以对这些属性装饰的方法应如何执行进行大量控制。虽然默认形式的 xUnit.NET 允许您编写类似于
NUnit 测试夹具及其测试方法的测试类,但您根本不局限于这种形式的单元测试。您可以自由扩展框架以支持 BDD
样式的关注/上下文/观察规范,如此所述。

xUnit.NET 还通过其 Theory 属性和相应的数据属性直接支持开箱即用的拟合样式测试。拟合输入数据可以从 excel、数据库,甚至是 Word
文档等自定义数据源(通过扩展基本数据属性)加载。这允许您利用单个测试平台进行单元测试和集成测试,这可以极大地减少产品依赖性和所需的培训。

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

2022-03-22