小编rss*_*the的帖子

使用Omniauth创建Rspec测试

Rails noob在这里.我无法理解如何/通过Omniauth-Facebook进行身份验证测试.几乎与相关的railscast有类似的设置.我的测试环境设置与以前的问题和Gem wiki中描述的类似.

几个问题.当您创建用户工厂时,如何获得生成的对象来模拟身份验证?

以下代码运行时会发生什么?

before do 
  request.env["omniauth.auth"] = OmniAuth.config.mock_auth[:facebook]
  visit '/auth/facebook'
end
Run Code Online (Sandbox Code Playgroud)

对象是否保存在数据库中?

我在下面添加了一些示例规格和工厂规格.同样,spec_helper安装文件将测试模式配置设置为true.

add_mock设置:

OmniAuth.config.add_mock(:facebook,
                         { :provider => 'facebook',
                           :uid => '1234567',
                           :info => { :name => 'Jonathan', :image => 'http://graph.facebook.com/1234567/picture?type=square'},
                           :credentials => {
                             :expires_at => 1351270850,
                             :token=> 'AAADzk0b791YBAHCNhBI3n6ScmWvuXTY4yIUqXr9WiZCg1R808RYzaHxsHnrbn62IwrIgZCfSBZAVIP6ptF41nm8YtRtZCeBbxbbz1mF8RQZDZD'
                            } })  
Run Code Online (Sandbox Code Playgroud)

User_pages_spec:

describe "user pages" do

  let(:user) { Factory.create(:user) }

  describe "sign_in" do
    before { visit '/' }

    it "should add a user to the User model" do 
      expect { click_link "sign_in" }.to change(User, …
Run Code Online (Sandbox Code Playgroud)

rspec ruby-on-rails omniauth

5
推荐指数
0
解决办法
1091
查看次数

标签 统计

omniauth ×1

rspec ×1

ruby-on-rails ×1