Railsを利用した開発現場などでは、アプリケーションの振る舞いをテストしたい場合によく使われているものにRSpecというものがあります。

僕も、個人で開発しているRailsプロジェクトのテストにはRSpecを利用しています。

今回は、そのRSpecに関する僕の知見についてお話をしていきたいと思います。

RSpecとは

「Spec」には仕様・仕様書などという意味合いがあります。

「R」は「Ruby」の頭文字なので、「RubyのSpec」ということになりますが、Rails開発でもこのRSpecはよく使われています。

RSpecはテスティングフレームワークのことで、アプリケーションの振る舞いをテストコードに記し、それを基に検証します。

特徴的なのは、仕様書を書く感覚でコードを記述することができます。

テストコードを記述する場所

Railsではジェネレーターというコマンドがあり、それを実行すると自動的にスペック用ファイルが作成されるので、そこに記述していきます。

スペックを書く上で念頭に置いておきたい事

example一つに対して、一つの結果だけ出力

一つのexampleに複数の検証コードを記述してしまうと、もしexampleが失敗した時にどの検証コードが失敗しているのかが特定しにくくなります。

一つのexampleに単体の検証コードだけ記述するようにすれば、exampleが失敗した時にどこでコケてしまったのかが一発で特定できます。

可読性を優先する

Railsの思想でDRY原則というものがありますが、テストコードに対してそれにこだわり過ぎてしまうと、テストコードが解読しづらくなってしまう事もあります。

テストコードを記述する際にどちらを優先するか迷うことがあった場合には、可読性の方を許容させましょう。

itの説明文は省略しない

itの説明文は省略することも可能ですが、スペックが読みづらくなるので省略しないようにしましょう。

RSpecに馴染みがない場合はモデルスペックから始めてみよう

RSpecの書き方を勉強したい場合の取っ掛かりとして、まずはモデルスペックから書いていくことをオススメします。

他のスペックと比べて検証が単純なのでコードが書きやすいかなと思います。

RSpecには幾つかの大きなカテゴリがありますが、モデルスペックはその内の一つとなり、基本的には以下のような内容を検証します。

  • クラスメソッド
  • インスタンスメソッド
  • バリデーション

まとめ

RSpecについて簡単にまとめると、以下のようになります。

  • Railsの開発などで使われている
  • テストコードを記述して検証する
  • 勉強を始める場合はモデルスペックからがオススメ

先ほども紹介しましたが、コードを書く上で念頭に置いておきたい内容も意識しながら書くのも勉強になると思いますよ。

更新日 : 2020年5月13日

投稿者: TWEI

趣味はプログラミング。 以前は仕事でプログラミングをやっていました。現在はWebエンジニアを目指して勉強中。 勉強で得た知識などをブログで発信していく予定です。

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA