我在这里发布了类似的错误,但都无法解决我的问题.
我的文件'spec/request/news_controller_spec.rb'如下所示:
require 'spec_helper'
describe "NewsController" do
include Devise::TestHelpers
describe "GET /news" do
before(:each) do
@request.env["devise.mapping"] = Devise.mappings[:user]
@user = Factory.create(:user)
@user.confirm!
sign_in @user
end
it "after login should show the latest news an screen" do
page.should have_content("News")
end
end
end
Run Code Online (Sandbox Code Playgroud)
如果我运行测试,我会得到:
Failures:
1) Campaigns GET /news works!
Failure/Error: Unable to find matching line from backtrace
NoMethodError:
undefined method `env' for nil:NilClass
# /Users/.../gems/devise-1.5.3/lib/devise/test_helpers.rb:25:in `setup_controller_for_warden'
# /Users/.../gems/rspec-rails-2.8.1/lib/rspec/rails/adapters.rb:15:in `block (2 levels) in setup'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/hooks.rb:35:in `instance_eval'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/hooks.rb:35:in `run_in'
# /Users/.../gems/rspec-core-2.8.0/lib/rspec/core/hooks.rb:70:in …Run Code Online (Sandbox Code Playgroud)