QA@IT
«質問へ戻る

エラーの詳細追加

376
本文
 ```
 
 
-そこでrspecでこのコントローラをテストする為に、以下の様なrspecを書きましたが全てエラーになりました。
+そこでrspecでこのコントローラをテストする為に、以下の様なrspecを書きましたが全てエラー("No route matches")になりました。
 
 ```rb
-get :user_omniauth_callback,:facebook
-
 get :user_omniauth_callback,{:action => :facebook}
 
 get :user_omniauth_callback,:action => :facebook

RspecでControllerのテストをするときに、どう書けばいいのかわからない

現在、Rails3.2で開発しています。

そこでソーシャルログイン機能を実装したのですが、この機能をテストしようとrspecでプログラムを書こうとしたところ、コントローラにどのようにアクセスすればいいかわからず質問させていただきました。

具体的に説明させていただきます。
現在アクセスしたいコントローラのroutesの出力結果は以下の様になっています。

user_omniauth_callback        /users/auth/:action/callback(.:format)   users/omniauth_callbacks#(?-mix:facebook)

あと一応テスト対象のコントローラも書かせていただきます。

class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
  def facebook
    # You need to implement the method below in your model
    @user = User.find_for_facebook_oauth(request.env["omniauth.auth"], current_user)

    if @user.persisted?
      flash[:notice] = I18n.t "devise.omniauth_callbacks.success", :kind => "Facebook"
      sign_in_and_redirect @user, :event => :authentication
    else
      session["devise.facebook_data"] = request.env["omniauth.auth"]
      redirect_to new_user_registration_url
    end
  end
end

そこでrspecでこのコントローラをテストする為に、以下の様なrspecを書きましたが全てエラー("No route matches")になりました。

get :user_omniauth_callback,{:action => :facebook}

get :user_omniauth_callback,:action => :facebook

どのように書けば、このコントローラに対してアクセスすることができるのでしょうか?

現在、Rails3.2で開発しています。

そこでソーシャルログイン機能を実装したのですが、この機能をテストしようとrspecでプログラムを書こうとしたところ、コントローラにどのようにアクセスすればいいかわからず質問させていただきました。

具体的に説明させていただきます。
現在アクセスしたいコントローラのroutesの出力結果は以下の様になっています。

```rb
user_omniauth_callback        /users/auth/:action/callback(.:format)   users/omniauth_callbacks#(?-mix:facebook)
```

あと一応テスト対象のコントローラも書かせていただきます。

```rb
class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
  def facebook
    # You need to implement the method below in your model
    @user = User.find_for_facebook_oauth(request.env["omniauth.auth"], current_user)

    if @user.persisted?
      flash[:notice] = I18n.t "devise.omniauth_callbacks.success", :kind => "Facebook"
      sign_in_and_redirect @user, :event => :authentication
    else
      session["devise.facebook_data"] = request.env["omniauth.auth"]
      redirect_to new_user_registration_url
    end
  end
end
```


そこでrspecでこのコントローラをテストする為に、以下の様なrspecを書きましたが全てエラー("No route matches")になりました。

```rb
get :user_omniauth_callback,{:action => :facebook}

get :user_omniauth_callback,:action => :facebook
```



どのように書けば、このコントローラに対してアクセスすることができるのでしょうか?

ほげ

376
本文
 user_omniauth_callback        /users/auth/:action/callback(.:format)   users/omniauth_callbacks#(?-mix:facebook)
 ```
 
-そこでこのコントローラにアクセスするために以下の様なrspecを書きましたが、全てエラーになりました。
-
-```rb
-get :user_omniauth_callback,:facebook
-
-get :user_omniauth_callback,{:action => :facebook}
-
-get :user_omniauth_callback,:action => :facebook
-```
-
 あと一応テスト対象のコントローラも書かせていただきます。
 
 ```rb
   end
 end
 ```
+
+
+そこでrspecでこのコントローラをテストする為に、以下の様なrspecを書きましたが全てエラーになりました。
+
+```rb
+get :user_omniauth_callback,:facebook
+
+get :user_omniauth_callback,{:action => :facebook}
+
+get :user_omniauth_callback,:action => :facebook
+```
+
+
 
 どのように書けば、このコントローラに対してアクセスすることができるのでしょうか?

RspecでControllerのテストをするときに、どう書けばいいのかわからない

現在、Rails3.2で開発しています。

そこでソーシャルログイン機能を実装したのですが、この機能をテストしようとrspecでプログラムを書こうとしたところ、コントローラにどのようにアクセスすればいいかわからず質問させていただきました。

具体的に説明させていただきます。
現在アクセスしたいコントローラのroutesの出力結果は以下の様になっています。

user_omniauth_callback        /users/auth/:action/callback(.:format)   users/omniauth_callbacks#(?-mix:facebook)

あと一応テスト対象のコントローラも書かせていただきます。

class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
  def facebook
    # You need to implement the method below in your model
    @user = User.find_for_facebook_oauth(request.env["omniauth.auth"], current_user)

    if @user.persisted?
      flash[:notice] = I18n.t "devise.omniauth_callbacks.success", :kind => "Facebook"
      sign_in_and_redirect @user, :event => :authentication
    else
      session["devise.facebook_data"] = request.env["omniauth.auth"]
      redirect_to new_user_registration_url
    end
  end
end

そこでrspecでこのコントローラをテストする為に、以下の様なrspecを書きましたが全てエラーになりました。

get :user_omniauth_callback,:facebook

get :user_omniauth_callback,{:action => :facebook}

get :user_omniauth_callback,:action => :facebook

どのように書けば、このコントローラに対してアクセスすることができるのでしょうか?

現在、Rails3.2で開発しています。

そこでソーシャルログイン機能を実装したのですが、この機能をテストしようとrspecでプログラムを書こうとしたところ、コントローラにどのようにアクセスすればいいかわからず質問させていただきました。

具体的に説明させていただきます。
現在アクセスしたいコントローラのroutesの出力結果は以下の様になっています。

```rb
user_omniauth_callback        /users/auth/:action/callback(.:format)   users/omniauth_callbacks#(?-mix:facebook)
```

あと一応テスト対象のコントローラも書かせていただきます。

```rb
class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
  def facebook
    # You need to implement the method below in your model
    @user = User.find_for_facebook_oauth(request.env["omniauth.auth"], current_user)

    if @user.persisted?
      flash[:notice] = I18n.t "devise.omniauth_callbacks.success", :kind => "Facebook"
      sign_in_and_redirect @user, :event => :authentication
    else
      session["devise.facebook_data"] = request.env["omniauth.auth"]
      redirect_to new_user_registration_url
    end
  end
end
```


そこでrspecでこのコントローラをテストする為に、以下の様なrspecを書きましたが全てエラーになりました。

```rb
get :user_omniauth_callback,:facebook

get :user_omniauth_callback,{:action => :facebook}

get :user_omniauth_callback,:action => :facebook
```



どのように書けば、このコントローラに対してアクセスすることができるのでしょうか?

質問を投稿

RspecでControllerのテストをするときに、どう書けばいいのかわからない

現在、Rails3.2で開発しています。

そこでソーシャルログイン機能を実装したのですが、この機能をテストしようとrspecでプログラムを書こうとしたところ、コントローラにどのようにアクセスすればいいかわからず質問させていただきました。

具体的に説明させていただきます。
現在アクセスしたいコントローラのroutesの出力結果は以下の様になっています。

user_omniauth_callback        /users/auth/:action/callback(.:format)   users/omniauth_callbacks#(?-mix:facebook)

そこでこのコントローラにアクセスするために以下の様なrspecを書きましたが、全てエラーになりました。

get :user_omniauth_callback,:facebook

get :user_omniauth_callback,{:action => :facebook}

get :user_omniauth_callback,:action => :facebook

あと一応テスト対象のコントローラも書かせていただきます。

class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
  def facebook
    # You need to implement the method below in your model
    @user = User.find_for_facebook_oauth(request.env["omniauth.auth"], current_user)

    if @user.persisted?
      flash[:notice] = I18n.t "devise.omniauth_callbacks.success", :kind => "Facebook"
      sign_in_and_redirect @user, :event => :authentication
    else
      session["devise.facebook_data"] = request.env["omniauth.auth"]
      redirect_to new_user_registration_url
    end
  end
end

どのように書けば、このコントローラに対してアクセスすることができるのでしょうか?

現在、Rails3.2で開発しています。

そこでソーシャルログイン機能を実装したのですが、この機能をテストしようとrspecでプログラムを書こうとしたところ、コントローラにどのようにアクセスすればいいかわからず質問させていただきました。

具体的に説明させていただきます。
現在アクセスしたいコントローラのroutesの出力結果は以下の様になっています。

```rb
user_omniauth_callback        /users/auth/:action/callback(.:format)   users/omniauth_callbacks#(?-mix:facebook)
```

そこでこのコントローラにアクセスするために以下の様なrspecを書きましたが、全てエラーになりました。

```rb
get :user_omniauth_callback,:facebook

get :user_omniauth_callback,{:action => :facebook}

get :user_omniauth_callback,:action => :facebook
```

あと一応テスト対象のコントローラも書かせていただきます。

```rb
class Users::OmniauthCallbacksController < Devise::OmniauthCallbacksController
  def facebook
    # You need to implement the method below in your model
    @user = User.find_for_facebook_oauth(request.env["omniauth.auth"], current_user)

    if @user.persisted?
      flash[:notice] = I18n.t "devise.omniauth_callbacks.success", :kind => "Facebook"
      sign_in_and_redirect @user, :event => :authentication
    else
      session["devise.facebook_data"] = request.env["omniauth.auth"]
      redirect_to new_user_registration_url
    end
  end
end
```

どのように書けば、このコントローラに対してアクセスすることができるのでしょうか?