私の 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
を使用して)調べると、スイートで実行すると返されます。個々のテスト ファイルで同じテストを実行すると、表示どおりに表示されます。
my の登録メソッドで失敗したテストは次の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
アプリケーションも正しく機能することにも言及する価値があります。スイートを通過させたいだけです。
何が起こっているのかについて誰か光を当てていますか?