前回の記事ではRubyとOpalに両対応したgemを作る話を書きました。
この場合lib/以下のコードを「RubyとOpal、どちらでも動く」ように書く必要があります。Opalはまだたまに抜けてるメソッドがあったりするので、ちゃんとOpalでも動くかコマンドラインでテストできるといいですよね。
そこで使えるのがopal-rspecです。
インストール
テストの実行にphantomjsが必要なので、例えばMac+Homebrewならbrew install phantomjs
でインストールします。
セットアップ
opal-rspecのexample以下にプロジェクトのひな形が置いてあるので、これをまるごとcpするのが簡単です。
https://github.com/opal/opal-rspec/tree/master/example
cpしたら、以下のようにします。
- Gemfileのopal-rspecの部分を
gem 'opal-rspec', '0.3.0.beta3'
に書き換える- Opal 0.6.xに対応したものがbetaしか出ていないため。(RSpec3のリリースを待ってたのかも?)
bundle install
bundle exec rake
これで、spec/user_spec.rbが実行されます。
.rbという拡張子になっていますが、これはOpalのコードです。rakeを実行するとopal/user.rbとspec/user_spec.rbとRSpec本体がJSにコンパイルされ、phantomjsで実行されるという寸法です。