相关疑难解决方法(0)

nil的未定义方法'env':NilClass

这是我的spec文件的样子: spec/api/v1/projects_spec.rb

require "spec_helper"

describe "/api/v1/projects", :type => :api do
  context "projects viewable by this user" do
   it "JSON" do
   end
  end
end
Run Code Online (Sandbox Code Playgroud)

它包含了更多,但我删除了很多行,但未成功尝试查找错误,如下所示:

Failure/Error: Unable to find matching line from backtrace
NoMethodError: undefined method `env' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

这段代码来自Ryan Bigg的"Rails 3 in Action".它包含的唯一其他文件是:spec/support/api/helper.rb

module ApiHelper
  include Rack::Test::Methods

  def app
   Rails.application
  end
end

RSpec.configure do |c|
  c.include ApiHelper, :type => :api
end
Run Code Online (Sandbox Code Playgroud)

我一直在尝试谷歌过去1小时的错误,我发现最接近的是这个,因此我删除了使用Devise :: Test_Helpers的代码.可悲的是,它仍然无法正常工作.

任何帮助,将不胜感激.非常感谢.

堆栈跟踪

 # /home/prakhar/.rvm/gems/ruby-1.9.2-p290/gems/devise-2.0.4/lib/devise/test_helpers.rb:24:in `setup_controller_for_warden'
 # /home/prakhar/.rvm/gems/ruby-1.9.2-p290/gems/rspec-rails-2.8.1/lib/rspec/rails/adapters.rb:15:in `block (2 levels) in setup'
 # …
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails devise

16
推荐指数
1
解决办法
1万
查看次数

使用rspec进行集成测试并设计sign_in env

我正在使用设计配置使用omniauth facebook登录集成.sign_in从我的spec/request测试中调用方法时,我得到:

undefined method `env' for nil:NilClass
Run Code Online (Sandbox Code Playgroud)

规格:

describe FacebookController do
  include Devise::TestHelpers

  it "should display facebook logged in status" do
    @user = User.create(:id => "123", :token => "token")
    sign_in @user
    visit facebook_path
  end
end
Run Code Online (Sandbox Code Playgroud)

facebook rspec ruby-on-rails devise

9
推荐指数
1
解决办法
1万
查看次数

标签 统计

devise ×2

rspec ×2

ruby-on-rails ×2

facebook ×1