Rails pluginのテストでRspecを使う

Rails pluginを調べていて、思ったのだが普通にplugin作成した場合はTest::Unitがテストフレームワークとして提供される、
ここでRspecを使用するようにしてみたときの個人的メモ。

Railsのバージョンは4.1.4。

まずはpluginのひな形作成。testunitは使用しないのでslip。またdummyアプリのパスをspec/dummyにしておく。

rspec-rails をmy-gem.gemspecに追加

bundle installして、rspec-railsをinstallする。
dummy/spec へのシンボリックリンクを作成

Rspecのインストールし、spec/rails_helper.rbのパスを変更

Rakeタスクも追加し、実行できることを確認

以下のような構成で、簡単な文字列を出力するだけのプラグインを作成して

テストを作成

ちなみに、RubyのStructを使うことで、コンパクトにまとめられそうとか。

dummyアプリケーションにcontroller、routesとviewを追加する。

テストを走らせてみる。

シンボリックリンクを作成するのどうなのかなと思ったりもしたけど、一通り良さそうである。

参考にしたページ
How to Test a Concern in Rails
Rails 3.1 plugin gem, dummy test app, rspec
Customize Rails view & controller with Railtie

Comments