【发布时间】:2010-09-05 08:34:59
【问题描述】:
我希望在我的应用程序中添加一个测试套件,但是我无法迁移到 .NET 3.5 的新测试框架。
有人对使用好的测试框架有什么建议吗?
【问题讨论】:
我希望在我的应用程序中添加一个测试套件,但是我无法迁移到 .NET 3.5 的新测试框架。
有人对使用好的测试框架有什么建议吗?
【问题讨论】:
我们使用MbUnit 和Rihno Mocks,事实证明它们可以很好地协同工作。在进行 TDD 时,您几乎肯定需要进行某种形式的依赖注入,虽然这可以手动完成,但值得研究 IoC 容器,例如 Castle Windsor。
非常值得一看 John Paul Bodhood 的屏幕演员表来帮助您入门。 JPB's Blog
【讨论】:
NUnit 和 Rhino 非常适合,auto-mocking container 可能会很有趣。
如果您也在寻找 BDD,那么NBehave 可能是一个不错的选择。但是,如果您只是指与单元测试(xSpec)相关的 BDD 风格,尽管您可以通过添加框架(尽管像 specunit 这样的东西确实添加了一些语法糖),但您可能想看看 MSpec也很有趣。
【讨论】:
查看 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。您会发现使用此重构和指导工具可显着提高您的工作效率。它将帮助您在开发测试时更改代码。
希望对你有帮助
【讨论】:
在 TFS 中使用 nUnit 并不太难。甚至在 codeplex 上还有一个项目来实现这一点:NUnit for Team Build,它甚至将结果“发布”到仓库。
我还没有尝试过 - 但我会建议对 nUnit 进行大量投资(或对它有强烈偏好而不是 MSTest 工具)的客户,他们有兴趣实施 TFS 继续使用 nUnit,而不是尝试转换所有现有的测试。
【讨论】:
NUnit 可在http://www.nunit.org 获得 即使在 MS 堆栈上工作时,我也会建议这样做 - MVC 预览中正在发生对非 MS 框架的支持,这显示了朝着正确方向的明确运动,以允许我们所有人定制我们的堆栈以适应。
【讨论】:
我必须为Moq 大声疾呼。它是一个简洁的轻量级模拟框架,可引导您进入成功的深渊。
TFS 内置的测试工具还可以。他们会完成工作,但通常会有点麻烦。生成的报告、代码覆盖率和其他一些部分特别糟糕。它们会让你在 22 岁而不是 50 岁时秃顶。
如果您真的喜欢测试,可以考虑尝试一些持续集成。你会很快感受到回归带来的痛苦,而这种痛苦可能会帮助你更快地达到最终目标。
不管你做什么,如果你有时间,试试几个,看看哪一个是最自然的。祝你好运,编码愉快。
【讨论】:
NUnit 一直是我的最爱。但是,如果您使用 TFS 作为源代码控制,我建议您坚持使用 Microsoft Stack。
【讨论】:
我推荐以下:
TestDriven.NET - VS 的单元测试插件,与所有主要单元测试框架(包括 NUnit、MbUnit 等)完全集成...
Typemock Isolator-.Net Unit Testing的模拟框架
NUnit - C# 中的开源单元测试框架。
【讨论】: