gpt4 book ai didi

ruby-on-rails - RSpec 设置 session 对象

转载 作者:行者123 更新时间:2023-12-03 08:43:13 25 4
gpt4 key购买 nike

我正在尝试从我的 Controller 规范中设置 session 对象。

it 'use invalid coupon' do
session[:coupon] = 'abcd'
Service.any_instance.stub(:validate_coupon).with(session[:coupon]).and_return('abcd')

get :index
expect(flash[:coupon__notice]).to be nil
end

但是当我检查 session 时,而不是@coupon 对象,我得到一个包含字符串“coupon”的@data,并且测试失败。

最佳答案

这在 Guide to Testing Rails Applications 中有解释在第 4 节“ Controller 的功能测试”中。get 操作采用参数散列和 session 散列,例如:

get(:show, {'id' => "12"}, {'user_id' => 5})

你应该可以传入 nil对于示例中的 params 哈希,然后传入所需的 session 参数:
get :index, nil, {coupon: 'abcd'}

对于使用 RSpec 进行 Rails 测试的任何人,我建议彻底阅读 Rails 指南。 rspec-rails利用现有的 Rails 测试类,这一点在 rspec-rails 中没有说得很清楚文档。

关于ruby-on-rails - RSpec 设置 session 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22451969/

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