我们正在构建一个新产品,我们处于第0阶段。我有一个任务来决定应该使用哪个单元测试工具。我过去曾与Rhino mocks,NuNit和testdriven.net合作过,我喜欢他们所有人。
我想知道它们的优点和缺点,可以帮助我决定选择哪一个。
答案 0 :(得分:5)
您已经提到过Rhino Mocks,NUnit和TestDriven。我不会将这些相互比较。但是,您可以将其中的每一个与其对应物进行比较。
这是一个开始! - 我试图包含比较链接
单元测试框架
NUnit vs. MbUnit vs. MSTest vs. xUnit.net
我稍微喜欢NUnit,似乎是最常用的之一,而且它非常易于使用。但我不介意其他人。
测试方式
我想这会影响我的测试选择。 可以使用AAA(排列操作断言)或BDD(行为驱动开发)完成单元测试。
我发现BDD对域驱动设计非常有帮助,因为它测试用途故事并将域作为测试对象。</ p>
对于AAA,您可以使用单位框架。
BDD框架
Tdd vs Bdd(比较方法) http://lostechies.com/seanchambers/2008/12/07/starting-with-bdd-vs-starting-with-tdd/
<强>嘲笑强>
查找设置模拟的语法。 .NET领域有很多。
https://stackoverflow.com/questions/37359/what-c-sharp-mocking-framework-to-use
VS插件
再一次,无论什么让你感觉更好
代码覆盖率
你没有提到这一点,但你必须能够证明所写的代码。
修改
测试网络服务
数据库测试
希望这有帮助
答案 1 :(得分:1)
由于所有单元测试框架(至少是我所知道的)基于非常相似的原则,我认为使用哪一个主要是品味问题。 Here's a table comparing the usage details of various common frameworks in the .net world.
如果您想使用更多BDD样式,我建议您查看SpecFlow或Machine.Specifications(MSpec)。虽然两者都需要基于xUnit的单元测试框架。
作为一名测试运动员,我自己使用testdriven.net,但这也是一个品味问题。如果您使用的是ReSharper或DevExpress CodeRush(您使用这样的工具,对吗?),您可以分别使用他们的测试运行器。 (尽管我个人根本不喜欢DevExpress的测试跑者。)
模拟框架也是如此。用你喜欢的东西。
答案 2 :(得分:0)
答案 3 :(得分:0)
在这里你有一个模拟框架比较,可以帮助你选择另一个:
https://stackoverflow.com/questions/37359/what-c-sharp-mocking-framework-to-use