如何存根活动资源?

时间:2011-07-28 17:14:47

标签: ruby-on-rails-3 rubygems ruby-on-rails-3.1

My Active Resource连接到一些愚蠢的外部服务,需要一段时间才能响应,无论出于何种原因。这有点太唠叨了。我想在开发期间存根Active Resource以加快我的开发时间。

这是一件好事吗?我觉得是这样的。如果您不这么认为,请解释。

是否存在基于环境配置文件中的交换机将其存根的机制,可能是您为此目的使用的任何gem /插件?

在您的经历中,您如何做以及如何做到这一切?

1 个答案:

答案 0 :(得分:1)

我建议使用FakeWeb。我最近在一个项目中使用了它,它允许我注册一些具有预定义响应的外部URL。在您的测试设置中,您可以这样做:

FakeWeb.register_uri(:get, %r|users.xml|, :body => File.read("spec/factories/xml/users.xml"))

现在,只要活动资源请求anyhost.com/users.xml(在测试环境中),您就会立即获得所引用文件的内容。我喜欢这种方法,因为当你测试模型时,你真的不想测试外部服务。我将这个级别的测试留给集成测试。

这不会影响开发或生产环境,因此您可以像往常一样使用愚蠢的外部服务。