gpt4 book ai didi

ruby-on-rails - Authlogic 和功能测试 - Authlogic::Session::Activation::NotActivatedError: You must activate

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

尽管遵循文档,但我收到以下错误。

在 test_helper.rb 中

ENV["RAILS_ENV"] = "test"
require File.expand_path(File.dirname(__FILE__) + "/../config/environment")
require "authlogic/test_case"
require 'test_help'
require 'shoulda'
require File.dirname(__FILE__) + "/factories"

在我的功能测试中需要'test_helper'

class SentencesControllerTest < ActionController::TestCase
setup do
:activate_authlogic
end

context "logged in" do
setup do
@user = Factory(:user)
UserSession.create(@user.id)
end

context "on GET to :new" do
setup do
get :new
end

should "present form with text field" do
assert_select('form#new_sentence') do
assert_select('textarea#sentence_text')
end
end
end
end #context logged in.
end

在环境.rb中

  config.gem "authlogic"

我不确定为什么它不起作用。有人可以帮忙吗?

Authlogic::Session::Activation::NotActivatedError: You must activate the Authlogic::Session::Base.controller with a controller object before creating objects
authlogic (2.1.3) lib/authlogic/session/activation.rb:47:in `initialize'
authlogic (2.1.3) lib/authlogic/session/klass.rb:64:in `initialize'
authlogic (2.1.3) lib/authlogic/session/scopes.rb:79:in `initialize'
authlogic (2.1.3) lib/authlogic/session/existence.rb:29:in `new'
authlogic (2.1.3) lib/authlogic/session/existence.rb:29:in `create'
test/functional/sentences_controller_test.rb:11:in `__bind_1270172858_922804'
shoulda (2.10.3) lib/shoulda/context.rb:380:in `call'
shoulda (2.10.3) lib/shoulda/context.rb:380:in `run_current_setup_blocks'
shoulda (2.10.3) lib/shoulda/context.rb:379:in `each'
shoulda (2.10.3) lib/shoulda/context.rb:379:in `run_current_setup_blocks'
shoulda (2.10.3) lib/shoulda/context.rb:371:in `run_all_setup_blocks'
shoulda (2.10.3) lib/shoulda/context.rb:375:in `run_parent_setup_blocks'
shoulda (2.10.3) lib/shoulda/context.rb:359:in `test: logged in on GET to :new should present form with text field. '
/opt/rubymine/rb/testing/patch/testunit/test/unit/ui/testrunnermediator.rb:36:in `run_suite'
/opt/rubymine/rb/testing/patch/testunit/test/unit/ui/teamcity/testrunner.rb:215:in `start_mediator'
/opt/rubymine/rb/testing/patch/testunit/test/unit/ui/teamcity/testrunner.rb:191:in `start'

最佳答案

应该:

class SentencesControllerTest < ActionController::TestCase

setup do
:activate_authlogic
end

...

是:

class SentencesControllerTest < ActionController::TestCase

def setup # setup should be its own method, prefixed with "def"
activate_authlogic # note the lack of a ":"
end

...

或者,如果您正在学习 Rails 测试教程,它可能有一个单行设置交易,例如:

setup :activate_authlogic  # note the USE of a ":" here - not sure why it's different between this and when you put it in its own method but that might be the answer for you

关于ruby-on-rails - Authlogic 和功能测试 - Authlogic::Session::Activation::NotActivatedError: You must activate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2564675/

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