Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何为find\u for\u facebook\u oauth方法编写rspec测试_Ruby On Rails_Ruby_Rspec - Fatal编程技术网

Ruby on rails 如何为find\u for\u facebook\u oauth方法编写rspec测试

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

以上代码用于facebook身份验证

我想为上述方法编写Rspec测试

我无法理解如何将auth作为参数中的参数传递

请帮助我如何在测试中传递auth作为参数


提前感谢。

在“描述”块中,为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