RSpecの自分なりの使用方法
Ruby on Railsのテストで、RSpecというものがあります。
デフォルトのテストであるTest::Unitもありますが、RSpecのほうが
より仕様に沿ったテストを記述しやすいように感じます。
RSpecを使うにあたり
・Windowsだと起動に時間が掛かるのを何とかしたい
・テストからコントローラやモデルを呼び出し、ステップ実行したい
という希望がありました。
これらの解決方法を踏まえ、自分なりのRSpecの使用方法を纏めておきたいと思います。
◆RSpecとSporkのセットアップ
Sporkというのはテスト用のサーバーのようなものであり、これを使うと
RSpecの起動が早くなります。
1.インストール
Gemfileに以下を記述し、bundle install を実行します。
'rspec-rails'は group :development, :test do〜end の中に記述するといいでしょう。
2.rspecのインストール
以下のコマンドを実行します。
$ rails generate rspec:install
3.Sporkのセットアップ
以下のコマンドを実行します。
$ spork --bootstrap
◆テストの作成
1.integrationテスト作成
以下のコマンドを実行します。
$ rails generate integration_test テスト名
spec/requestsフォルダ内に、テスト名_spec.rbファイルが作成されます。
2.コントローラのテストを作成
以下のコマンドを実行します。
$ rails g rspec:controller コントローラ名
◆テストの実行
1.sporkの起動
以下のコマンドを実行します。
$ spork
2.sporkを使ったテストの実行
sporkを起動したのとは別のコンソールで、以下のコマンドを実行します。
「--drb」がsporkを使うためのオプションです。
$ rspec spec/対象のテスト.rb --drb (特定ファイルのテストを実行)
$ rspec spec/ --drb (specフォルダ内の全テストを実行)
◆RSpecのデバッグ
デバッグする場合は、sporkを使えません。なので起動に時間がかかります。
1.ブレークポイントの設定
デバッグで止めたい箇所に、「debugger」を記述します。
2.RSpecの起動
以下のコマンドを実行します。「-d」がデバッグ実行のためのオプションです。
$ rspec spec/対象のテスト.rb -d (特定ファイルのテストを実行)
$ rspec spec/ -d (specフォルダ内の全テストを実行)
以上です。