我希望向我的应用程序添加一个测试套件,但是我无法迁移到 .NET 3.5 的较新测试框架。

有人有关于好的测试框架的建议吗?

有帮助吗?

解决方案

我们用 兆单位里诺·莫克斯 事实证明,它们可以很好地协同工作。在进行 TDD 时,您几乎肯定需要进行某种形式的依赖注入,虽然这可以手动完成,但值得查看 IoC 容器,例如 温莎城堡.

约翰·保罗·博德胡德 (John Paul Bodhood) 的屏幕截图非常值得一看,以帮助您入门。 JPB 的博客

其他提示

NUnit 和 Rhino 非常适合, 自动模拟容器 可能会感兴趣。

如果您也在关注 BDD 那么 行为规范 也许是一个不错的选择。然而,如果您只是指与单元测试 (xSpec) 相关的 BDD 风格,那么您可以通过添加框架来摆脱困境(尽管像这样的事情) 规格单位 确实添加一些句法糖),但你可能想看看 M规格 也很有趣。

查看 Rob Conery 使用 MSpec 关于 BDD 的截屏视频。非常令人印象深刻 http://blog.wekeroad.com/mvc-storefront/kona-3/

编辑:我现在使用这种方法: http://10printhello.com/the-one-bdd-framework-to-rule-them/

对于模拟对象库,我找到了 BSD 许可的 犀牛模拟 是比较令人愉快的。

我使用它取得了巨大的成功 单位 以及。

我也用过 NMock 当需要模拟对象时。作为额外的好处,用于创建模拟对象的工厂称为 Mockery。

为了促进单元测试的运行,我使用了 测试驱动.NET 按照我的编码运行单元测试。另外,我用过 巡航控制.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库。我没有使用过任何其他测试,所以无法与您进行比较和对比,但是 NBehave 得到了 MBUnit 团队的 Gallio 的支持,这意味着您可以像使用 TestDriven.NET 进行单元测试一样运行 BDD 测试。

我还强烈推荐 Resharper。您会发现使用此重构和指导工具可以显着提高您的工作效率。它将帮助您在开发测试时更改代码。

希望这可以帮助

我将不得不大声疾呼 起订量. 。它是一个干净的轻量级模拟框架,可以帮助引导您进入成功的深渊。

TFS 中内置的测试工具还不错,它们可以完成工作,但使用起来往往有点麻烦。生成的报告、代码覆盖率和其他一些部分特别糟糕,它们会让你在 22 岁时秃顶,而不是 50 岁。

如果您真的喜欢测试,请考虑尝试一些持续集成。你会很快感受到回归带来的痛苦,并可能帮助你更快地实现最终目标。

无论您做什么,如果有时间,都可以尝试一些,看看哪一种最自然。祝你好运,编码愉快。

将 nUnit 与 TFS 结合使用并不是太困难。codeplex 上甚至有一个项目可以实现这一点: 用于团队建设的 NUnit 它甚至将结果“发布”到仓库。

我还没有尝试过 - 但我会建议那些在 nUnit 上有大量投资(或者对它比 MSTest 工具有强烈偏好)、有兴趣实施 TFS 的客户继续使用 nUnit,而不是尝试转换他们所有的现有的测试。

单位 可以在 http://www.nunit.org即使在处理 MS 堆栈时,我也会建议这样做 - MVC 预览中正在发生对非 MS 框架的支持,这显示了朝着正确方向的明确移动,允许我们所有人自定义我们的堆栈以适应。

NUnit 一直是我的最爱。但是,如果您使用 TFS 作为源代码控制,我建议您坚持使用 Microsoft Stack。

我推荐以下内容:

测试驱动.NET - VS 的单元测试附加组件与所有主要单元测试框架(包括 NUnit、MbUnit 等)完全集成...

类型模拟隔离器- 一个模拟框架 .Net 单元测试

单位 - C# 语言的开源单元测试框架。

在我的项目中,我使用了 NUnit 和 TestDriven.NET,并取得了巨大成功。您可以创建一个单独的库来托管您的测试代码,也可以将其放入可执行文件或库中。这完全取决于您是否希望生产代码与测试代码交织在一起。

对于依赖注入,我使用 N注入 在我目前的项目中,它的工作非常棒。如果您使用构造函数注入,则不需要使用 [Inject] 属性使代码变得混乱。

我还没有为我的 .NET 2.0 项目使用模拟库,但对于另一个 .NET 3.5 项目我将使用 起订量

请注意,所有这些都适用于 .NET 2.0 及更高版本。(起订量除外)

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top