小编big*_*ron的帖子

rspec集成测试与设计抛出NoMethodError错误

我在这里发布了类似的错误,但都无法解决我的问题.

我的文件'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)

rspec devise ruby-on-rails-3.2 factory-bot

7
推荐指数
1
解决办法
3833
查看次数

标签 统计

devise ×1

factory-bot ×1

rspec ×1

ruby-on-rails-3.2 ×1