使用外部服务/ api的代码的TDD BDD的最佳实践

时间:2010-06-01 07:03:30

标签: testing tdd

2 个答案:

答案 0 :(得分:6)

你真正在谈论的是你想要完成的两种不同类型的测试 - 单元测试和集成测试。

单元测试将独立于任何外部数据测试方法的有效性。您应该根据您使用的任何语言来研究某种模拟框架。你基本上想要用测试来说,相当于“如果这些假设是合格的,那么这个测试应该产生......”制作框架将定义你的假设,就是说某些类/对象设置在一种特殊的方式,可以假设是有效的。这些测试不依赖于Twitter活着,或者第三部分库/ API正在响应。

集成测试将针对数据源执行实时测试,使用库/ API执行实际操作。如果它变得棘手,因为您正在使用第三方服务,所以正在写入服务(即,如果您正在创建新的推文)。如果你是,你总是可以在Twitter上创建一个可以仅用于写操作的帐户。通常,如果您正在测试本地数据库(例如),那么您可以使用事务来测试类似的操作;回滚交易而不是提交它们。

以下是一些非语言特定的高级定义:

我来自.NET堆栈,因此我不会假装对Ruby有太多了解。不过,快速谷歌搜索确实揭示了以下内容:

答案 1 :(得分:0)

你可以使用像wiremock http://wiremock.org/这样的东西轻松地在http层存根。我现在已经在一些项目中使用了它,并且它非常强大和快速。这将消除所有基于代码的基于代码的设置代码 - 只需使用相关映射启动jar,然后将bob作为你的叔叔。