मैं मणि विकि पर देखा है और निर्देशों का पालन किया, लेकिन जब एक omniauth परीक्षण कर रही है किसी कारण से मैं एक nil
हो रही है:आप rspec का उपयोग कर omni-auth facebook का परीक्षण कैसे करते हैं?
user_sessions_controller_spec.rb:
require 'spec_helper'
describe UserSessionsController, "OmniAuth" do
before do
request.env["omniauth.auth"] = OmniAuth.config.mock_auth[:facebook]
end
it "sets a session variable to the OmniAuth auth hash" do
request.env["omniauth.auth"]['uid'].should == '123545'
end
end
spec_helper.rb:
RACK_ENV = ENV['ENVIRONMENT'] ||= 'test'
OmniAuth.config.test_mode = true
omniauth_hash =
{:provider => "facebook",
:uid => "1234",
:info => {:name => "John Doe",
:email => "[email protected]"},
:credentials => {:token => "testtoken234tsdf"}}
OmniAuth.config.add_mock(:facebook, omniauth_hash)
कल्पना परिणाम:
Failures:
1) UserSessionsController OmniAuth sets a session variable to the OmniAuth auth hash
Failure/Error: request.env["omniauth.auth"]['uid'].should == '123545'
NoMethodError:
You have a nil object when you didn't expect it!
You might have expected an instance of Array.
The error occurred while evaluating nil.[]
# ./spec/controllers/user_sessions_controller_spec.rb:10:in `block (2 levels) in <top (required)>'
यदि आप डेविस का उपयोग नहीं कर रहे हैं तो यह कैसे किया जाएगा? – freddyrangel