gpt4 book ai didi

ruby-on-rails - 在 Rails 中测试 Controller 助手重定向

转载 作者:数据小太阳 更新时间:2023-10-29 08:32:16 25 4
gpt4 key购买 nike

我正在尝试在辅助模块上编写 rspec 单元测试

我有 SessionsControllerSessionsHelper

SessionsHelper里面我有

def redirect_back_or(default)
redirect_to(session[:return_to] || default)
session.delete(:return_to)
end

我想做一个看起来像这样的测试:

describe "redirect_back_or(default)" do
describe "with stored location" do
before do
helper.request.path = users_path
helper.store_location
end
it do
expect(helper.redirect_back_or(user_path(@user))).to redirect_to(users_url)
helper.session[:return_to].should eq(nil)
end
end
end

但是我在 Helper 方法中得到了一个异常

undefined method `redirect_to' for #<#<Class:0x00000006fc9940>:0x00000005322620>
# ./app/helpers/sessions_helper.rb:34:in `redirect_back_or'
# ./spec/helpers/sessions_helper_spec.rb:99:in `block (4 levels) in <top (required)>'

最佳答案

这里没有直接解决您的问题的方法。

问题是 Rails 助手并不适合您要实现的功能类型。

app/helpers 中的文件是为 VIEW 助手准备的。因此,您将在模板中使用或用于呈现的方法。

您要实现的功能类型是在 Controller 级别。 Rails 中的好地方是将它放在 ApplicationControllerapp/controllers/concerns 中的文件中,就像现在时髦和时髦一样。

然后您可以通过请求或 Controller 规范对其进行测试。

关于ruby-on-rails - 在 Rails 中测试 Controller 助手重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20789062/

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