这是我的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) 我正在使用设计配置使用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)