有人会推荐我一个 MVC 的单元测试框架吗?有很多选择让我困惑选择哪个框架。
NUnit 或 XUnit.Net 或 MSTest ??
谢谢,文卡特
有人会推荐我一个 MVC 的单元测试框架吗?有很多选择让我困惑选择哪个框架。
NUnit 或 XUnit.Net 或 MSTest ??
谢谢,文卡特
我只建议不要使用 MSTest。
在我目前的项目中,我们使用 MSTest 大约一年。我使用 NUnit 已经很多年了,但是其他人对单元测试很陌生,所以为了让他们更简单(不带 3rd 方测试框架和它的运行器),我们使用 MSTest 并将其集成到 VS 中。是皮塔饼!
使用 MSTEST,您必须保留所有 VS 测试的列表。您必须维护此列表(添加/删除新/删除的测试)。测试从此列表中消失,您无法说出原因。保留此列表的文件不会合并!因此,当您同时添加新测试时,另一个人添加测试时,您会遇到必须解决的冲突。我不明白为什么。它应该没有问题地合并。
您还可以寻找一些不使用 MSTEST 的原因。
我推荐xUnit。这是一个非常现代的单元测试框架,非常简单和简洁。我最喜欢 xUnit 的特性是每个测试方法都有一个对象实例,这意味着测试相互影响的可能性要小得多。NUnit eg 没有这个特性,这很容易导致不稳定的测试。此外,xUnit 使用标准 .NET 功能来执行设置和拆卸等操作。它通过构造函数和析构函数来做到这一点,因此您不必学习新的约定,而可以使用自己的约定。最后,恕我直言,xUnit 测试类看起来要好得多,因为使用的属性更少并且断言方法更短。
您提到的所有三个都非常扎实,可以完成工作。就个人而言,我更喜欢MSTest。它易于学习和使用,但具有不错的功能。就像 xUnit 一样,它也可以在测试的执行前和执行后进行设置[TestInitialize]
和清理。[TestCleanup]
我的建议是拿一个来学习它。一旦你了解它并了解它的优点和缺点,你就可以转向另一个可以帮助你更快和/或更好地完成工作的方法。
我同意——三个都很好。这可能不是重点,但要找到好的Mocking 框架要困难得多,因为模拟 DbContext 类并不容易(尤其是当您使用 Sql Server 时)。如果您使用它,我可以推荐TypeMock,否则RhinoMocks会很好。