gpt4 book ai didi

ruby-on-rails - rspec & 设计测试助手

转载 作者:行者123 更新时间:2023-12-03 13:30:35 26 4
gpt4 key购买 nike

根据this从设计 wiki 我应该能够在我的 Controller 测试中使用 login_user 辅助方法。因此,我在规范目录中有以下内容:

#spec_helper.rb
...
Dir[Rails.root.join("spec/support/**/*.rb")].each {|f| require f}

RSpec.configure do |config|
config.include Devise::TestHelpers, :type => :controller
config.extend ControllerMacros, :type => :controller
...


#support/controller_macros.rb
module ControllerMacros
def login_user
before(:each) do
@request.env["devise.mapping"] = Devise.mappings[:user]
@user = Factory.create(:user)
sign_in @user
end
end
end

但是调用助手不起作用:
#requests/some_spec.rb
require 'spec_helper'
describe "GET /guides/edit" do
login_user
end

有人可以指出我哪里出错了。测试套件从这里开始工作。我收到一个未定义的局部变量或方法消息,所以我猜该模块没有被包括在内。

rails 3.0.7
rspec 2.6.0
设计 1.3.4

backtrace

最佳答案

我想这种方法有几个问题。首先是您使用的是请求规范,而不是 Controller 规范,所以 login_user config.extend ControllerMacros, :type => :controller 不提供方法.其次,即使您能够包含该方法,它也很可能无论如何都不起作用,因为 Devise 测试助手是专门为 Controller / View 测试编写的,而不是集成测试。

看看 David Chelimsky 的 answerthis SO question ,这可能会有所帮助。

关于ruby-on-rails - rspec & 设计测试助手,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6403650/

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