从HTTP位置在黄瓜测试中提供静态文件

时间:2013-07-11 00:58:53

标签: ruby-on-rails ruby cucumber carrierwave

我正在测试带有Carrierwave Uploader的模型的JSON API,但我只允许通过remote_url上传,所以我需要一些方法来获取公共资产中的文件的HTTP地址,因为我知道那些永远存在。

换句话说:

当Rails服务器运行时,我有"http://localhost:3000/assets/logo.png"的静态资产。在Cucumber运行时我需要该文件的地址 - 也就是说,我需要在运行Cucumber时提供静态文件,以便Rails应用程序的不同部分可以“下载”该文件。

编辑:这些测试不是使用浏览器运行的,尽管(截至最近),它们是使用会话运行的。我可能正在使用Cucumber,但我没有使用任何代码或启动Capybara。

2 个答案:

答案 0 :(得分:2)

如果我正确理解你的问题。您可能希望查看FakewebWebmock之类的内容来回复/模拟外部请求。

答案 1 :(得分:0)

我认为你可以通过使用这些来获取黄瓜开始的测试服务器的根uri:

对于水豚< 2.0:

Capybara.current_session.driver.rack_server.host
Capybara.current_session.driver.rack_server.port

Capybara 2.0:

Capybara.current_session.server.host
Capybara.current_session.server.port