gpt4 book ai didi

ruby-on-rails - rspec Rails 模拟 session 哈希

转载 作者:行者123 更新时间:2023-12-01 20:25:10 25 4
gpt4 key购买 nike

我正在尝试模拟 Controller 的 session 哈希,如下所示:

it "finds using the session[:company_id]" do
session.should_receive(:[]).with(:company_id).and_return 100
Company.should_receive(:find).with(100)
get 'show'
end

当我调用 get 'show' 时,它指出:

received :[] with unexpected arguments  
expected: (:company_id)
got: ("flash")

Controller 代码如下所示:

def show
company_id = session[:company_id]
@company = Company.find params[company_id]
end

我也尝试过设置

it "finds using the session[:company_id]" do
session[:company_id]= 100
Company.should_receive(:find).with(100)
get 'show'
end

但随后遇到了一个问题:

expected: (100)
got: (nil)

有人知道为什么吗?

最佳答案

我刚刚遇到了这个。我无法设法让 should_receive 不干扰 flash 的东西。

但这让我测试了我正在寻找的行为:

it "should redirect to intended_url if set" do
request.env['warden'] = double(:authenticate! => true)
session.stub(:[]).with("flash").and_return double(:sweep => true, :update => true, :[]= => [])
session.stub(:[]).with(:intended_url).and_return("/users")
post 'create'
response.should redirect_to("/users")
end

希望有帮助...

关于ruby-on-rails - rspec Rails 模拟 session 哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3693667/

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