RSpec の Shared Examples(shared_examples_for)機能

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

スポンサーリンク

以下、最初に 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 もおすすめです。
スポンサーリンク
 
Twitterを使っていますのでフォローお願いたします!ブログの更新情報もつぶやいてます^^
(英語学習用)

Leave Your Message!