gpt4 book ai didi

ruby-on-rails - 在 Rails 集成规范中向同一个 Controller 发出两个请求

转载 作者:行者123 更新时间:2023-11-28 19:40:24 25 4
gpt4 key购买 nike

我在 Rails 集成测试中使用 rspec 向同一个 url 发出两个请求时遇到问题

it 'does something' do

# get '/something', {:status=>'any_other'}, @header ## <<<<< this line causes problem!

get '/something', {:status=>'ok'}, @header
doc = Nokogiri::HTML(response.body)
lis = doc.css('#the_id')
lis.size.should == 1
lis[0].text.should include('anything')
end

如果我向同一个 Controller 发出两个请求,测试似乎会保持旧的响应...

在上面的例子中,如果我取消注释该行,测试就会中断,因为它保留了第一个“查询”的结果

这是测试堆栈的限制,还是我做错了什么?

最佳答案

使用普通的旧 Rails 测试套件,功能测试针对单个请求,如果您想测试流程,您应该使用集成测试(您可以在功能测试中重置 Controller )。

rspec-rails 的 Controller 规范继承自 Rails 功能测试,因此它们具有相同的限制。您可以将 rspec 与 capybara 或 webrat(我推荐前者)一起用于集成测试。

另外,最近版本的 rspec-rails 有“请求规范”,它“混合了 Rails 集成测试的行为”:https://github.com/rspec/rspec-rails

关于ruby-on-rails - 在 Rails 集成规范中向同一个 Controller 发出两个请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7850650/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com