引き続き

  • before /after
    • setup / teardown に相当
    • 一度だけ実行したい場合、:allを指定する
    • 各example毎実行したい場合、:eachを指定する デフォルト
    • 複数指定もできる。実行順番は
      • before系は定義順
      • after系は定義順の逆順
  • should / should_notはRSpecによるObjectに対する拡張するメソッド
  • マッチャ
    • 演算子マッチャ < <= == === =~ > >= 否定のものはサポートされない、should_notを使うべき
    • be_close change eql equal have(n).items have_at_least(n).items have_at_most(n).items have_exactly include match raise_error respond_to satisfy throw_symbol
    • be_XXX → XXX?
    • be_true / be_falsetrue? / false?というメソッドがなくても使える
    • have_XXX → has_XXX?
    • カスタムマッチャ定義できる
  • violatedは実行を失敗させる
  • 保留:テストまだ書いてない
    • itにブロックを渡せない
    • pendingメソッドを使う

ようやく RSpec on Rails

  • 今更気づいたのですが、記事のバージョンは結構古い。よって、コマンドとかいろいろ変わっている
    • インストール:Gemfileにgem 'rspec'gem 'rspec-rails'追記してから、bundle install実行すればOK
    • 初期化はrails g rspec:install
    • rake specの補完一覧 image
    • TODO:モックとスタブの区別はわからない
    • フォルダ構造もシンプルになっているよう。少なくともデフォルトは作ってない
    • script/generate rspec_modelを実行する必要がなくなり、上記のrails g rspec:installを実行しておけば、普通に rails g …を実行する時、test系ではなく、rspec系のテストクラスを作ってくれる
    • ruby 1.9以降を使う+日本語がある場合、例のencoding=utf-8追記する必要

複数記事に分けるので、とりあえずここまで