もふもふ技術部

Sinatra + omniauth-twitter + RSpecでTwitterログインをテストする


SinatraでTwitterログインを下記みたいに実装しました。stubの使い方に少し悩んだ。

view

hiddenパラメータのback_urlにログイン後に戻りたい画面のURLを保存してます。ログインをaタグにしているのはCSSの都合なので、submitボタンでもOK。

main.rb

Requestの中身をstubにしたい

認証後にsessionに正しく情報がセットされたかどうかを検証したいので、Request.envに値が入っている必要があります。
これは実際にTwitterログインを行わないと値が入ってこないので、Request.envをstubにしちゃいます。

main_spec.rb

やっぱりRSpecは書きやすいなー。
contextで分岐を表現できたりするのでそれぞれのテストメソッドが担当する箇所が明確にしやすい感じ。

The following two tabs change content below.
原田 敦

原田 敦

日本CAWのエンジニア。もふもふ部の部長。得意分野はRuby on Railsを使った小規模WEBアプリケーションを高速で開発すること。週末の楽しみは一人お菓子パーティー。三度の飯より小動物をもふもふするのが好きです。