RSpec
エンジニアのためのWebチートシート
RSpecとはRubyで実装されたBDD(behavior driven development)のためのテスティングフレームワークです。自然言語のような読み書きのしやすさが特徴です。 RSpecの基本的な書き方、テストコードのDRY化のための仕組み、マッチャなどをチートシートにまとめてみました。
導入
Railsの場合
1. gemのインストール
2. bundle install
3. RSpecに最小限必要なファイルをRailsにインストール
Railsを使用しない場合
1. 作業ディレクトリの作成
2. bundlerを初期化
3. gemのインストール
4. RSpecの初期化
RSpecの基本
基本形
describeはテスト対象をグループ化します。 itはテストをexampleという単位にひとまとめにし、itの内部で実行されたテストコードが全てパスした場合に成功とみなされます。 itの中身はテストの本体です。テスト対象の処理と結果を様々なマッチャを使用して比較します。ここでは、'1 + 1' という処理を 'to eq' というマッチャを使用して '2' と等しいかテストしています。
describe/it/expect
describe
describeはテスト対象をグループ化します。 下記のようにテスト対象の構造をdescribeをネストすることで表現することができます。
it
itはテストをexampleという単位にひとまとめにし、itの内部で実行されたテストコードが全てパスした場合に成功とみなされます。 実際にテストを実行した時には下記のように表示されるはずです。
expect
'expect' はエクスペクテーションです。 '1 + 1' が '2' と 'to eq'(等しくなること)を期待するという意味です。
context/before/let
context
'context' はテストの条件を分岐する時に使用します。 上のテストでは、Productクラスの 'low_price?' というメソッドを'low_price'の時、'high_price'の時という二つの条件でテストしています。
before
'before' で 'describe' や 'context' 内の共通処理をまとめてコードをDRYに保つことができます。
let
'let' を用いることで遅延評価(変数が必要になるまで呼び出されない)することができます。
Related Goods
詳細をみるあまり読みやすい本ではなく、内容も少し古い部分があります! が、TDDの始まりや思想など深い部分についても学べる一冊です。
WebTerm - Recommended tools
WebTermは、ブラウザでLinuxコマンド・Gitコマンドを安全に実行でき、チュートリアル式で学べるターミナルサンドボックスです。
AIコーディングツールの普及に伴い、CLIの基礎知識を身につける重要性は増しています。実際のターミナルを操作するのに抵抗がある方でも、WebTermはローカル環境を壊す心配がありません。「会員登録不要・無料」で利用でき、学習環境として最適です。

WebTerm
Browser Terminal Sandbox for Learning CLI
All Cheatsheets