当前位置 : 主页 > 手机开发 > 其它 >

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

来源:互联网 收集:自由互联 发布时间:2021-06-22
我正在使用一个Twitter宝石,基本上访问Twitter,让我抓住推文,时间线等.它真的很好,但我有很多我的代码使用它返回的东西,我需要测试它.宝石返回的东西不是简单的字符串,有非常复杂的对
我正在使用一个Twitter宝石,基本上访问Twitter,让我抓住推文,时间线等.它真的很好,但我有很多我的代码使用它返回的东西,我需要测试它.宝石返回的东西不是简单的字符串,有非常复杂的对象(也很可怕),所以我留下了挠头.

所以基本上我正在寻找一个答案,书籍,博客,开源项目,它可以向我展示围绕外部服务进行测试的权利和错误.

最重要的是,不是以语言为中心或以ruby / rails为中心的答案.

你真正在谈论的是你想要完成的两种不同的测试 – 单元测试和集成测试.

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

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

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

> Wikipedia (Software Testing)
> Wikipedia (Mock Object)

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

> Mocha (Ruby Mocking Framework)

网友评论