首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >NUnit对xUnit

NUnit对xUnit
EN

Stack Overflow用户
提问于 2012-03-19 11:07:40
回答 6查看 108K关注 0票数 166

NUnitxUnit.net有什么区别?开发其中的两个,而不仅仅是一个,有什么意义?

我读到xUnit是由NUnit的发明者开发的:

xUnit.net是.NET框架的单元测试工具。编写,NUnit的原始发明者

另一方面:

NUnit是一个适用于所有.Net语言的单元测试框架。当前的产品版本,版本2.6,是这个基于xUnit的单元测试工具的第七个主要版本

那么真相在哪里呢?

EN

回答 6

Stack Overflow用户

发布于 2016-10-24 14:14:49

在编写此答案时,最新的NUnit版本是v3.5,xUnit.net是v2.1。

这两个框架都很棒,它们都支持并行测试运行(但方式不同)。自2002年以来,NUnit就已经出现了,它被广泛使用,有很好的文档记录,并且有一个庞大的社区,而xUnit.net更现代化,更具有TDD的依附性,更易于扩展,而且在.NET Core开发中也很流行。它也有很好的记录。

除此之外,我注意到的主要区别是xUnit.net运行测试方法的方式。因此,在NUnit中,我们有一个测试类和一组测试方法。

NUnit创建测试类的新实例,然后从同一个实例运行所有测试方法。

然而,xUnit.net为每个测试方法创建测试类的新实例。

因此,不能使用字段或属性在测试方法之间共享数据,这是一个糟糕的实践,因为我们的测试方法相互依赖,这在TDD中是不可接受的。因此,如果使用xunit.net,您可以确保您的测试方法是完全隔离的。

但是,如果您愿意在测试方法之间共享一些数据,xUnit将允许您这样做。因此,默认情况下,所有测试方法都是完全隔离的,但在特定情况下可以故意打破这种隔离。我喜欢这种态度,这就是我更喜欢它的原因。

票数 202
EN

Stack Overflow用户

发布于 2012-03-19 12:03:07

您将单个工具(xUnit.net)的名称与整个单元测试框架(xUnit )的名称混淆在一起(xUnit是指语言/环境的x,例如JUnit、NUnit、.)。

票数 44
EN

Stack Overflow用户

发布于 2015-10-27 19:39:38

xUnit Pros:

xUnit采用了一个新的概念,避免了旧的"SetUp“和"TearDown”方法。它迫使我们像作为.NET开发人员一样使用.NET和构造函数。此外,xUnit有一个明确的上下文共享概念。

xUnit Cons:

获得测试上下文的可用性尚未实现。

票数 13
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9769047

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档