[英]Which Unit Test framework should I start with for C# in Visual Studio 2008? (Windows Forms app)
问题 - 如果我使用 Visual Studio 2008 在 C# 中启动 Windows 窗体应用程序,我应该使用哪个单元测试框架?
VS2008 中似乎有一个版本? 或者我应该研究类似 NUnit 的东西? 或者说NUnit 是VS2008 引擎盖下用的什么? 什么是最受欢迎的。
拥有允许以下内容的东西会很好:(a)模拟/存根,以及(b)断言异常的能力
谢谢
我建议将 NUnit 用于您的测试框架。 如果您需要在构建服务器上设置它,它非常轻巧且易于运输。 这不是使用 MSTest 的情况。 至于模拟/隔离框架,Rhino Mocks 拥有最大的用户群,您可能会使用 Rhino Mocks 最快找到问题的答案。
如果它只是一个简单的应用程序,那么 VS2008 中内置的 MSTest 框架应该可以满足所有要求。 它与 NUnit 不同,尽管很多人(错误地)将其视为同一事物。
我从来没有用它来嘲笑,所以也许其他人可以详细说明。 它会在您的解决方案中生成一个单独的项目,仅用于测试目的。 这是如何使用它的一个很好的解释。
(来源: geekzone.co.nz )
编辑:做更多的挖掘,我发现了 MSTest 和 NUnit 的这个比较。
NUnit 框架的缺点:
那是我链接到的比较文章。
我从未使用过 NUnit,只使用过 C# 的 MSTest 和 Java 的 JUnit,所以我在这方面有点偏见。 对于 WinForms ,MSTest 对我来说一直非常有效,具有能够单独运行测试、显示非常详细的报告(带有单独的跟踪日志)和自动生成所有样板测试代码以及执行所有使 VS2008 如此的功能等功能一个出色的 IDE。 听上去,NUnit 对其他人来说运行良好,他们有自己的理由喜欢它。
除非您有特殊的理由采用 NUnit/Testdriven.NET 方法,例如您需要某个功能,或者您只是喜欢这种设置测试并尝试将其集成回 VS 的方式,否则我看不出有任何理由不要只使用开箱即用的 MSTest。
我们已经开始使用 MSTest。 它具有在 NUnit 中(轻度)难以复制的优势。 它允许您访问类的私有成员。 当您检查状态时,这非常宝贵。 例如,假设我有一个函数可以将条目放入未公开的字典中。 我的理解是,对于 NUnit,您必须使用反射来访问字典,或者仅出于测试目的添加 getter。 在这里,你可以查字典。 很容易也很干净。 它还允许您测试我喜欢的私有函数(我知道有些人不相信这一点)。 虽然我不喜欢 MSTest,但该功能使测试变得更加容易。
VS 集成也不错。
使用 MSTest。 它内置于 VS2008 中,并在 IDE 中支持创建测试功能。 如果当你“超过”MSTest 时,那么你应该看看 NUnit 或更现代的xUnit 。 您可以通过使用 ExpectedException 属性进行修饰来预期 MSTest 中的异常。
[Test]
[ExpectedException(typeof(ArgumentNullException))]
public void Should_throw_ArgumentNullException_when_the_Order_is_null()
{
OrderProcessor processor = new OrderProcessor();
processor.ProcessOrder(null);
}
模拟框架独立于您选择的测试框架。 模拟框架的流行选择是: Moq和Rhino Mocks 。
我会说,为简单起见,从内置于 2008 年的 Visual Studio 开始。NUnit 非常棒,我经常使用它,因此一旦您对编写单元测试感到满意,您就可以继续使用 NUnit。
你没有提到你是否要测试驱动代码..
我建议您阅读一本薄书“使用 NUnit 在 C# 中进行实用单元测试”,并至少通读一遍。
在 NUnit v MSTest 行上,我不适合发表评论。 0 飞行时间与 MSTest。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.