Railsの特徴の1つはテストコードに関する情報が豊富なことだと思います。
テストの中でも最もメジャーなRSpecに関しては書くことがたくさんあるので、「Railsを斬る」とは別カテゴリのコラムにすることにしました。
RSpecはバージョン2とバージョン3で記述方法がかなり異なります。ここでのバージョンはRspec3を想定しています。
Railsの特徴の1つはテストコードに関する情報が豊富なことだと思います。
テストの中でも最もメジャーなRSpecに関しては書くことがたくさんあるので、「Railsを斬る」とは別カテゴリのコラムにすることにしました。
RSpecはバージョン2とバージョン3で記述方法がかなり異なります。ここでのバージョンはRspec3を想定しています。
久々(1年半ぶり)にRailsチュートリアルを眺めてみました。
ちなみにこのサイト、本当によくできています、Rails初学者は必読のサイトでしょう。
(続きを読む…)
これまでホームページ作成ソフトの類いを使った事がありません。
仕事上、静止画面のHTMLを作成する機会がなかったという事もありますが、あの種のソフトが吐き出すCSSは必要以上に複雑になってしまうため、その後のメンテナンスがキツイというのが主な理由です。
ちゃんとCSSを理解して使えば、CSSの記述内容はシンプルで読みやすくなるはずです。
(続きを読む…)
RSpecの出力は–format(もしくは-f)で指定可能です。
指定可能なフォーマットはprogress(デフォルト)、documentation、html、jsonの4種類が用意されています。 (続きを読む…)
Rspecでテストコードを書くとやたらめったらコードが長くなることがありますよね、ここではShared exampleを利用してコードを共有する(DRY)方法を紹介します。
※RSpecのバージョンはRspec3を想定しています。
(続きを読む…)
Rspecでテストコードを書くとやたらめったらコードが長くなることがありますよね、ここではShared contextを利用してコードを共有する(DRY)方法を紹介します。
※RSpecのバージョンはRspec3を想定しています。
(続きを読む…)
RSpecテストの数が数百、数千個になってくるとテストの待ち時間が問題になってきます。個々のテストに「毎回実行する」、「たまに実行する」や「すぐ終わる」、「時間かかる」などの分類ができると便利です。
その際に使用するのがRSpecのtag機能です。
※RSpecのバージョンはRspec3を想定しています。 (続きを読む…)
前回tagを指定することで一部のテストのみ実行する方法を紹介しましたが、tag以外にも文字列の検索機能や行番号指定を利用して特定のテストのみを選択して実行することができます。
その際にはrspecコマンドに–example (もしくは-e)オプションや:(行番号)を使用します。
※RSpecのバージョンはRspec3を想定しています。
テスト実行前後に処理を挟む場合はbefore、afterを使用します。
それぞれ:suite、:context、:exampleを指定してテストのどの部分に処理を挟むかを指定します。
※RSpecのバージョンはRspec3を想定しています。 (続きを読む…)