我希望在我的应用程序中添加一个测试套件,但是我无法迁移到 .NET 3.5 的更新测试框架。
有人对使用好的测试框架有什么建议吗?
我们使用MbUnit和Rihno Mocks,它们被证明可以很好地协同工作。在进行 TDD 时,您几乎肯定需要进行某种形式的依赖注入,虽然这可以手动完成,但值得一看 IoC 容器,例如Castle Windsor。
非常值得看一下 John Paul Bodhood 的屏幕截图以帮助您入门。JPB 的博客
查看 Rob Conery 在 BDD 上使用 MSpec 的截屏视频。非常令人印象深刻http://blog.wekeroad.com/mvc-storefront/kona-3/
编辑:我现在使用这种方法:http: //10printhello.com/the-one-bdd-framework-to-rule-them/
对于 Mock Object 库,我发现 BSD 许可的Rhino.Mocks相当令人愉悦。
我在使用NUnit方面也取得了巨大的成功。
当需要模拟对象时,我也使用过NMock 。作为额外的奖励,用于创建模拟对象的工厂称为 Mockery。
为了便于单元测试的运行,我在编写代码时使用了TestDriven.NET来运行单元测试。此外,我使用Cruise Control .NET来观察 SVN 并检查每个新提交是否构建并通过所有单元测试。
这可能是对已经说过的内容的总结,但对于 TDD,我个人使用 Rhino Mocks 和 MBUnit。Rhino Mocks 是一个免费和开源的模拟框架。Rhino Mocks 的优点是我们不需要像在 NMock 中那样使用魔术字符串来设置您的期望。
我喜欢 MBUnit,因为 MbUnit 具有 RowTests 的概念,它允许您改变对测试方法的输入。MBUnit 也是免费提供的。
您还希望确保您为单元测试框架选择的任何内容都得到 CI(持续集成服务器)的支持。Cruise Control.NET 默认支持 Nunit,您必须做一些额外的工作才能让 MBUnit 在 ccnet 中工作。
从 IDE 的角度来看,您必须拥有 TestDriven.NET。TestDriven.NET 允许您在 IDE 中右键单击并运行测试,它支持 MBUnit 和 Nunit 等。
NBehave 是我用过的 BDD 库。我没有使用过其他任何产品,因此无法与您进行比较和对比,但是 MBUnit 团队的 Gallio 支持 NBehave,这意味着您可以像使用 TestDriven.NET 进行单元测试一样运行 BDD 测试。
我也强烈推荐 Resharper。您会发现使用此重构和指导工具可显着提高您的工作效率。它将帮助您在开发测试时更改代码。
希望这可以帮助
NUnit可在http://www.nunit.org获得, 即使在 MS 堆栈上工作时,我也建议这样做 - MVC 预览中正在发生对非 MS 框架的支持,这显示了朝着正确方向的明确运动,以允许我们一切都是为了定制我们的堆栈以适应。
将 nUnit 与 TFS 一起使用并不难。甚至在 codeplex 上还有一个项目可以实现这一点:NUnit for Team Build,它甚至可以将结果“发布”到仓库。
我还没有尝试过 - 但我会建议在 nUnit 中有大量投资(或对它有强烈偏好而不是 MSTest 工具)的客户,他们有兴趣实施 TFS 以继续使用 nUnit,而不是尝试转换他们的所有现有的测试。
我必须为起订量大喊大叫。它是一个简洁的轻量级模拟框架,可引导您进入成功的深渊。
TFS 内置的测试工具是可以的。他们会完成工作,但通常会有点麻烦。生成的报告、代码覆盖率和其他一些部分特别糟糕。它们会让你在 22 岁而不是 50 岁时秃顶。
如果您真的喜欢测试,请考虑尝试一些持续集成。你会很快感受到回归带来的痛苦,而这种痛苦可能会帮助你更快地达到最终目标。
不管你做什么,如果你有时间,尝试一些,看看哪一个是最自然的。祝你好运,编码愉快。
NUnit 一直是我的最爱。但是,如果您使用 TFS 作为源代码控制,我建议您坚持使用 Microsoft Stack。