我的 Rspec 测试都单独通过,但作为整个套件都失败了。
我已将问题缩小到使用以下描述的模拟omniauth哈希spec/support/devise.rb
:
OmniAuth.config.test_mode = true
OmniAuth.config.mock_auth[:facebook] = {
"uid" => "1111",
"provider" => "facebook",
"credentials" => {
"token" => "token",
"secret" => "secret"
},
"extra" => {
"raw_info" => {
"name" => "Adam Waite",
"username" => "adamjwaite",
"email" => "adam@adam.com"
}
}
}
OmniAuth.config.add_mock(:facebook, OmniAuth.config.mock_auth[:facebook])
当我OmniAuth.config.mock_auth[:facebook]
在测试失败之前检查时(使用pry:invalid_credentials
),如果在套件中运行,它会返回。如果我在单个测试文件中运行相同的测试,它会显示为显示。
这是我的注册方法中的失败测试UsersController
:
describe "GET :new" do
describe "as an unauthenticated user with a facebook omniauth session" do
before do
session[:omniauth_facebook] = OmniAuth.config.mock_auth[:facebook]
get :new
end
specify { assigns[:registering_with_facebook].should == true }
specify { assigns[:registering_with_twitter].should == false }
specify { response.should be_success }
end
end
还值得一提的是,该应用程序也可以正常运行。我只想让套房通过。
有人对正在发生的事情有所了解吗?