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)