测试使用外部API的方法

时间:2014-01-30 11:40:54

标签: ruby-on-rails ruby-on-rails-3 testing rspec

我有一个名为Video的模型。此模型具有after_save回调,该回调运行方法#upload_video_to_depot。该方法使用:file param(未保存在数据库中)并使用RestClient将视频文件上传到远程API。

问题是 - 如何在我的规范中处理它而不实际将文件发送到API?我需要测试我的Video模型和#upload_video_to_depot方法,但我无法想象它应该如何完成(我在TDD方面很新鲜)。

可以在规格中完全处理,还是我的模型中有一些变化?

1 个答案:

答案 0 :(得分:0)

使用像WebMock这样的gem来存根外部请求。您可以设置对发送的请求以及使用什么参数的期望,以及服务器应该给您的响应。

这将允许您确保您的REST客户端将正确的参数发送到正确的位置并正确处理响应。