5

मैं वर्तमान में एक ऐसा एप्लिकेशन बना रहा हूं जो उपयोगकर्ताओं को बनाने और प्रमाणित करने के लिए OmniAuth का उपयोग करता है। फैक्टरी गर्ल के बिना ओमनीएथ के उपयोगकर्ताओं को उत्पन्न करने में असमर्थ होने के कारण मुझे परीक्षण के दौरान समस्याएं आ रही हैं।ओमनीएथ के साथ फैक्टरी गर्ल में उपयोगकर्ताओं को बनाएँ?

मेरे पास कारखाने की लड़की को omniauth के साथ उपयोगकर्ताओं को बनाने के कई अलग-अलग तरीके हैं लेकिन कोई भी सफल नहीं हुआ है।

मैं अपने spec_helper फ़ाइल

OmniAuth.config.test_mode = true \\ allows me to fake signins 
OmniAuth.config.add_mock(:twitter, { :uid => '12345', :info => { :nickname => 'Joe Blow' }}) 

वर्तमान factories.rb के लिए निम्न 2 लाइनों को शामिल किया है

FactoryGirl.define do 
    factory :user do 
    provider "twitter" 
    sequence(:uid) { |n| "#{n}" } 
    sequence(:name) { |n| "Person_#{n}" } 
    end 
end 

क्योंकि प्रयोक्ता बनाई जा रही है निम्न परीक्षण वर्तमान में विफल रहता है

let(:user) { FactoryGirl.create(:user) } 
before { sign_in user } 

describe "registering" do 

    it "should increment" do 
    expect do 
     click_button 'register' 
    end.to change(user.rounds, :count).by(1) 
end 

फैक्टरी गर्ल को टेस्ट उपयोगकर्ताओं को बनाने के लिए मुझे अपने कारखानों/परीक्षणों को कैसे बदलना चाहिए OmniAuth?

संपादित करें: मैं RailsCast guide to setup Omniauth,

#create function inside user.rb 
def self.create_with_omniauth(auth) 
    create! do |user| 
    user.provider = auth["provider"] 
    user.uid = auth["uid"] 
    user.name = auth["info"]["name"] 
    end 
end 

उम्मीद है कि यह भी उपयोगी इस्तेमाल किया

#create inside the session_controller 
def create 
    auth = request.env["omniauth.auth"] 
    user = User.find_by_provider_and_uid(auth["provider"], auth["uid"]) || User.create_with_omniauth(auth) 
    session[:user_id] = user.id 
    redirect_to root_url, :notice => "Signed in!" 
end 
+0

क्या कोई और जानकारी है जो मैं आपको लोगों की मदद करने में मदद करने के लिए प्रदान कर सकता हूं? – SomberClock

उत्तर

2

आप परीक्षण सेटअप में कहीं निम्न करने के लिए याद किया?

request.env [ "omniauth.auth"] = OmniAuth.config.mock_auth [: चहचहाना]

तुमने किया था, तो यह संभव उपयोगकर्ता के यूआईडी नकली uid से मेल नहीं खाता है?

आप फैक्टरी परिभाषा को sequence(:uid) { |n| "#{n}" } से uid '12345' पर बदलने का प्रयास कर सकते हैं।

+0

आपको बहुत बहुत धन्यवाद! – SomberClock

संबंधित मुद्दे