Ruby on rails 如何为find\u for\u facebook\u oauth方法编写rspec测试
以上代码用于facebook身份验证 我想为上述方法编写Rspec测试 我无法理解如何将auth作为参数中的参数传递 请帮助我如何在测试中传递auth作为参数Ruby on rails 如何为find\u for\u facebook\u oauth方法编写rspec测试,ruby-on-rails,ruby,rspec,Ruby On Rails,Ruby,Rspec,以上代码用于facebook身份验证 我想为上述方法编写Rspec测试 我无法理解如何将auth作为参数中的参数传递 请帮助我如何在测试中传递auth作为参数 提前感谢。在“描述”块中,为auth创建fixture,然后编写调用该方法的规范,并将fixture auth传递给您的方法: def self.find_for_facebook_oauth(auth, signed_in_resource=nil) partner = Partner.where(:provider =&g
提前感谢。在“描述”块中,为auth创建fixture,然后编写调用该方法的规范,并将fixture auth传递给您的方法:
def self.find_for_facebook_oauth(auth, signed_in_resource=nil)
partner = Partner.where(:provider => auth.provider, :uid => auth.uid).first
if partner
return partner
else
registered_partner = Partner.where(:email => auth.info.email).first
if registered_partner
return registered_partner
else
partner = Partner.create(
username: "#{auth.info.name.downcase.delete(' ')}_#{Time.now.to_i}",
provider: auth.provider,
uid: auth.uid,
email: auth.info.email,
first_name: auth.info.first_name,
last_name: auth.info.last_name,
password: Devise.friendly_token[0,20],
auth_token: auth.credentials.token,
user_type: 'partners',
oauth_expires_at: Time.at(auth.credentials.expires_at).to_datetime
)
end
end
partner
end
不太确定这是否是你所要求的,但希望能有所帮助
describe YourClass do
it "should do certain things" do
# fixture auth
fixture_auth = "SomeRandomValue"
# pass it to your method
YourClass.find_for_facebook_oauth(fixture_auth)
end
end