推荐的单元测试工具,用于测试Web服务,api调用和SQL调用

时间:2011-11-16 16:30:45

标签: c# unit-testing testing

我们正在构建一个新产品,我们处于第0阶段。我有一个任务来决定应该使用哪个单元测试工具。我过去曾与Rhino mocks,NuNit和testdriven.net合作过,我喜欢他们所有人。

我想知道它们的优点和缺点,可以帮助我决定选择哪一个。

4 个答案:

答案 0 :(得分:5)

您已经提到过Rhino Mocks,NUnit和TestDriven。我不会将这些相互比较。但是,您可以将其中的每一个与其对应物进行比较。

这是一个开始! - 我试图包含比较链接

单元测试框架

  • NUnit的
  • MSTEST
  • MbUnit的
  • 的xUnit

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领域有很多。

  • 犀牛嘲笑
  • 起订量
  • NMock
  • TypeMock(如果你想模拟具体类型,但不是免费的话,请使用)

https://stackoverflow.com/questions/37359/what-c-sharp-mocking-framework-to-use

VS插件

再一次,无论什么让你感觉更好

  • TestDriven.NET
  • ReSharper - 我喜欢这个(与PartCover一起使用)
  • VS(测试窗口)

代码覆盖率

你没有提到这一点,但你必须能够证明所写的代码。

http://geekswithblogs.net/thomasweller/archive/2010/07/16/dotcover---a-new-kid-on-the-development-block.aspx

修改

测试网络服务

数据库测试

  • Sqlite - 如果您使用的是orm(例如NHibernate),因为sql可能会从您的sql供应商稍微改变
  • NDbUnit - 如果您使用的是SP,ORM或手摇SQL

希望这有帮助

答案 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