如何在萝卜验收规范中加载VCR结果?

时间:2017-03-26 21:17:17

标签: ruby-on-rails rspec vcr turnip

我有一个Web请求,最终调用外部服务,合并数据库中的数据,然后显示结果。

我认为我可以忽略基于JS的设置(make request,queue job,return polling js),因为看起来如果这是同步的话,我会有同样的问题。

step "I do the thing" do
  fill_in "search", with: "yarp"

  VCR.use_cassette("some_cassette") do
    click_on "Do the thing"
  end
end

因此,一旦服务器响应,我们就会在html表中获取内容,并且我希望确保来自外部服务的内容是显示在页面上的内容。

我找到了一种从响应中获取数据的方法,但想知道是否有更好的方法:

VCR.use_cassette("some_cassette") do |cassette|
  interaction = cassette.serializable_hash["http_interactions"].find do |interaction|
    interaction["request"]["uri"].include?("some_url")
  end

  @raw_result = JSON.parse(interaction["response"]["body"]["string"])
end

0 个答案:

没有答案