我之前从未进行过单元测试,但现在我愿意尝试一下。
什么框架最适合初学者? 优点和缺点
在开始任何编码之前我应该阅读什么? 书籍/文章/代码/博客
是否有任何开源“示例项目”?
我将使用asp.net mvc / C#。
答案 0 :(得分:7)
如果您在Visual Studio中集成了单元测试(我认为它是Professional和更好的一部分),那么从那开始,因为它是集成的。根据我的知识,在Visual Studio或Team Foundation Server之外没有测试运行器取消自动化测试的资格,但我不确定该信息的当前状态。
其他选择包括xUnit.net,NUnit和mbUnit。由于缺乏经验,我无法真正谈论优缺点,但我现在使用xUnit.net因为a)我知道自1.1版以来有一个有效的ASP.net MVC模板和b)Assert.Throws只是性感。我在Visual Studio中使用TestDriven.net的免费个人版本作为我的测试运行器。
xUnit有一个“如何入门”指南:http://www.codeplex.com/xunit/Wiki/View.aspx?title=HowToUse
同样,由于缺乏NUnit和mbUnit的经验,我无法真正比较它们,但我相信这三者都非常稳定和可用。
答案 1 :(得分:3)
我使用添加了TestDriven.Net的Visual Studio中的一个用于右键单击菜单项,允许我使用/不使用调试器运行单个测试。我开始使用NUnit。任何一个都可能没事。我更喜欢在VS中使用它,所以我不必支持这两种工具,但是集成有一些优点,特别是如果你使用Team System。
我相信TestDriven.Net支持许多不同的框架。您还需要使用coverage分析器来帮助您查看测试涵盖了代码的哪些部分,并帮助您确定可能需要的其他测试。您可能需要Team系统才能在VS的覆盖率分析中获得成功,但总有NCover(TestDriven.Net附带)。
我建议您从Pragmatic Unit Testing in C#或Pragmatic Programmers查看Test Driven Development with C#。两者都有例子。
Rob Conery的StoreFront示例是ASP.NET MVC的一个很好的例子。
答案 2 :(得分:3)
Rob Conery创建了一个serie of videos,展示了如何使用MVC创建电子商务应用。他正在使用完整的测试驱动方法(使用visual studio 2008中的内置测试框架)
答案 3 :(得分:3)
我建议您查看Gallio Automation Platform for .NET,因为它提供了一个中立(和免费)工具,可以在一个GUI工具下为您实现多个单元测试框架。它是由mbUnit背后的人创建的。
我对任何单元测试框架的主要专业是,它让您对代码充满信心,并且练习TDD变得非常自然。
主要的观点是ASP.NET webforms(我倾向于编写代码)不容易进行单元测试,这就是ASP.NET MVC对人们如此有吸引力的原因。另一个问题是你需要进入它,意识到你需要像他们运用的代码那样重构测试,如果不是更多的话。
答案 4 :(得分:2)
我唯一要补充的是 a)给他们一个尝试,看看你喜欢什么 [这是一个垃圾回答,但每个人都有他们自己的喜欢和不喜欢'尝试“卡片播放很多”以及你遇到的摩擦点和 b)在XUnit CodePlex网站上查看nice comparison of the primary unit test frameworks。
答案 5 :(得分:1)
答案 6 :(得分:0)
让我们首先介绍一下这方面的基础知识,好吗?单元测试是指对可能的最小代码进行测试,通常是代码中的函数/过程/方法。我建议看看Martin Fowler的“Refactoring”作为一本关于单元测试如何在重构中发挥作用的好书。
根据您设置代码的方式,您可能需要查看模拟框架,例如RhinoMocks,NMocks,.Net MockObjects,以便您可以设置测试装置来处理调用可能需要的执行前条件。可能有不止一些模拟对象单元测试示例,asp.net-mvc上的教程应该有一两个测试示例。
不要忘记asp.net-mvc仍然处于测试阶段,并且随着各种扭结的解决,可能会更改一些。
答案 7 :(得分:0)
我正在使用Selenium RC和Moq。到目前为止,我还没有碰到太多我无法测试并获得良好报道的领域。
看看Selenium RC sample code。这非常直接且易于理解......