gpt4 book ai didi

ruby-on-rails - Rspec 测试,调用 Controller 方法收到 NoMethodError

转载 作者:行者123 更新时间:2023-12-04 19:54:38 25 4
gpt4 key购买 nike

所以我只是想从 RSpec 中的用户 Controller 调用 log_in 方法作为

it "should get the index page" do
@user = User.new({ :email => "employee@test.com" })
log_in(@user)
get 'index'
response.should be_success
end

我得到的结果是这样的

1) EmployeesController GET 'index' should get the index page
Failure/Error: log_in(user)
NoMethodError:
undefined method `log_in' for #<RSpec::Core::ExampleGroup::Nested_1:0x4ac0328>
# ./spec/controllers/employees_controller_spec.rb:11:in `user_log_in'
# ./spec/controllers/employees_controller_spec.rb:16:in `block (2 levels) in <top (required)>'

有人能帮帮我吗?谢谢

2011 年 3 月 11 日编辑

这是 UserController 中的 log_in 方法

  def log_in(user)
session[:current_user] = user.id
end

最佳答案

如果您想在 RSpec Controller 测试中调用 Controller 上的方法,可以使用以下方法。

subject.send(:log_in,@user)

它应该调用该方法。我不知道这是否真的是最佳实践。更好的方法是按照 BurmajaM 的建议对 logged_in 方法进行 stub 。

关于ruby-on-rails - Rspec 测试,调用 Controller 方法收到 NoMethodError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5200326/

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