我正在使用一个Twitter宝石,基本上访问Twitter,让我抓住推文,时间线等.它真的很好,但我有很多我的代码使用它返回的东西,我需要测试它.宝石返回的东西不是简单的字符串,有非常复杂的对
所以基本上我正在寻找一个答案,书籍,博客,开源项目,它可以向我展示围绕外部服务进行测试的权利和错误.
最重要的是,不是以语言为中心或以ruby / rails为中心的答案.
你真正在谈论的是你想要完成的两种不同的测试 – 单元测试和集成测试.单元测试将独立于任何外部数据测试方法的有效性.您应该根据您使用的任何语言来研究某种模拟框架.你基本上想要用测试来说,相当于“如果这些假设是合格的,那么这个测试应该产生……”制作框架将定义你的假设,就是说某些类/对象设置在一种特殊的方式,可以假设是有效的.这些测试不依赖于Twitter活着,或者第三方库/ API响应.
集成测试将针对数据源执行实时测试,使用库/ API执行实际操作.如果它变得棘手,因为您正在使用第三方服务,所以正在写入服务(即,如果您正在创建新的推文).如果你是,你总是可以在Twitter上创建一个可以仅用于写操作的帐户.通常,如果您正在测试本地数据库(例如),那么您可以使用事务来测试类似的操作;回滚事务而不是提交它们.
以下是一些非语言特定的高级定义:
> Wikipedia (Software Testing)
> Wikipedia (Mock Object)
我来自.NET堆栈,因此我不会假装对Ruby有太多了解.不过,快速谷歌搜索确实揭示了以下内容:
> Mocha (Ruby Mocking Framework)