RSpec の Shared Examples(shared_examples_for)機能

スポンサーリンク

RSpec の Shared Examples という機能を勉強しました。この機能を用いると共通のテストコードを、文字通り Shared Examples(共有用の見本コード)で共有できて、テスト用コードをぐっと短く読みやすくできます。それぞれのテストは、let で独自の値を設定する。

【お知らせ】 英単語を画像イメージで楽に暗記できる辞書サイトを作りました。英語学習中の方は、ぜひご利用ください!
画像付き英語辞書 Imagict | 英単語をイメージで暗記
【開発記録】
英単語を画像イメージで暗記できる英語辞書サービスを作って公開しました
スポンサーリンク

以下、最初に Shared Examples 機能を使わないコードを書いて、その後 Shared Examples 機能を使ったコードに書き換えます。

Shared Examples を使わないコード

この RSpec テストコードを Shared Examples を用いて書き換えます。

Shared Examples を使ったコード

shared_examples_for メソッドに、”all static pages” という引数を渡して、見本コードの名前を付けて、そのブロックの中で見本となるコードを書きます。見本コードの中の変数は、各々テスト呼び出しコード側で、let により設定をします。そして、it_should_behave_like “all static pages” で、Shared Examples を呼び出し。

shared_examples_for のブロック部分の Example 用のコードが長くなればなるほど、Shared Examples 機能の恩恵を受けられますね。RSpec + Capybara はすごいなあ、本当に自然英語のようにコードの読み書きができて驚きです。

スポンサーリンク
私は Rails のテストフレームワークには RSpec を使っています。サーバーのテスト用に Serverspec もおすすめです。
 
スポンサーリンク

Leave Your Message!