c# -在.NET 2.0中实现BDD/TDD的最佳方法是什么?

Translate

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

有没有人建议使用良好的测试框架?

This question and all comments follow the "Attribution Required."

所有的回答

Dan
Translate

我们用单位里诺·莫克斯他们证明可以很好地合作。在进行TDD时,几乎可以肯定需要进行某种形式的依赖注入,尽管这可以手动完成,但值得一看的是IoC容器,例如温莎城堡.

值得一看的是John Paul Bodhood的屏幕截图,以帮助您入门。JPB的博客

来源
Jill Lee
Translate

NUnit和Rhino非常适合自动模拟容器可能很有趣。

如果您也在看BDD,那么贝贝可能是一个不错的选择。但是,如果您只是说与单元测试(xSpec)相关的BDD风格,尽管您可以不必添加框架(尽管类似规格单位确实添加一些合规糖),但您可能需要看看规格书也很有趣

来源
Translate

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

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

来源
Translate

对于模拟对象库,我已经找到了BSD许可犀牛相当讨人喜欢

来源
Translate

我在使用上取得了很大的成功NUnit也一样

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

为了促进单元测试的运行,我使用了TestDriven.NET按照我的代码运行单元测试。还有,我用过巡航控制.NET观看SVN并检查每个新的提交是否生成并通过所有单元测试。

来源
Translate

这可能是已经讲过的内容的摘要,但是对于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。使用此重构和指导工具,您会发现生产率显着提高。在开发测试时,它将帮助您更改代码。

希望这可以帮助

来源
Translate

我将不得不大声疾呼起订量。它是干净的轻型嘲讽框架,可帮助您引导成功。

内置在TFS中的测试工具还可以,它们可以完成工作,但是使用起来通常很麻烦。生成的报告,代码覆盖率和其他一些部分特别糟糕,它们使您开始秃头,而不是50点。

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

无论您做什么,只要有时间,就尝试一些方法,看看哪一种是最自然的。祝你好运,编码愉快。

来源
Translate

在TFS中使用nUnit并不困难。甚至在Codeplex上有一个项目来实现此目的:NUnit团队建设甚至将结果“发布”到仓库。

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

来源
Translate

NUnit在以下位置可用http://www.nunit.org即使在MS堆栈上工作,我也建议这样做-MVC预览中已经出现了对非MS框架的支持,这表明在正确方向上有明确的发展,使我们所有人都可以自定义适合自己的堆栈。

来源
Translate

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

来源
Eileen Lee
Translate

我建议以下内容:

TestDriven.NET-VS的单元测试附加件与所有主要的单元测试框架完全集成,包括NUnit,MbUnit等。

Typem隔离器-的模拟框架.Net单元测试

NUnit-C#中的开源单元测试框架。

来源
Translate

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

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

我没有为.NET 2.0项目使用模拟库,但为另一个.NET 3.5项目使用了模拟库起订量

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

来源