特集・コラム

メニュー

Ruby on Rails海外情報

vol.3 ‐ RubySpecの開発終了とテストツール

投稿日時:2015/03/02 06:03

カテゴリ: Ruby on Rails海外情報

こんにちはー。昨年12月には、Rails・Rubyともに新しいバージョンがリリースされて賑わいましたね。
まずRails 4.2が19日に(*1)、そしてRuby 2.2が25日にリリースされました(*2)。Rails 4.2はRuby 2.2に
対応しています(Rails 3.2以上がRuby 1.9.3以上に対応しています)。また、次期バージョンのRails 5.0からは、
Ruby 2.2以上をサポートする予定と発表されています(*3)。Rails 5.0では、Ruby 2.2で実装された新しい
シンボルガーベッジコレクションの機能を使うようです。
 

ところで、Ruby 2.2のリリースの直後、ruby言語の仕様をテストするRubySpecという外部ライブラリの開発が
突然終了されることが話題になりました(*4)。ruby言語は国際規格ISO/IEC 30170になっているものの(*5)、
厳密な仕様があるわけではありません。ruby言語の実装はMRI(=CRuby、rubyの作者のチームが開発)、
JRuby、Rubiniusなど複数ありますが、MRIの実装をもって仕様としているのが現状です。
そのため、ruby言語のテストライブラリをメンテナンスしようとすると、MRIの仕様に通じる必要があります。
しかし、MRI側とRubySpec側の調整がうまく行かず、お互いWin-Winの関係になれなかったため、RubySpecは
開発の継続を終了してしまったようです(*6)。
 

このことが多くのRubyistの間で議論になったことからも、Spec(仕様)の重要性がよく見えますね。
それではRailsでは何のテストツールが使われているのでしょうか。ざっと上げてみると以下のようなものがあります。
 

minitest(Test::Unit)(*7)
Ruby標準のテストツール。Ruby本体やRailsフレームワークのテストに使われている。
 
RSpec(*8)
一番人気のBDD(振舞駆動開発)フレームワーク。
 
Shoulda(*9)
Test::UnitをRspecのように書けるようにするもの。
 
Cucumber(*10)
自然言語(英語・日本語あり)で結合テストが書けるもの。
 

上記以外にもRiot(*11)、Steak(*12)などがあります。
 

Rails チュートリアルで勧められているのはRspecです。機能が豊富で読みやすく、国内外でとても人気があります。
ここ最近はよりシンプルな minitest(Test::Unit)にも光が当てられるようになり(*13)(*14)、日本でもminitestを
推奨する記事が増えてきまし た。RspecはDSL(専用言語)の習得が必要ですが、後者はruby言語だけで書くことが
でき、Rubyのバージョンアップと共に紆余曲折を経て進化してきたようです。
 

このように様々な選択肢がありますので、目的や好みに合ったものを探すのも楽しい作業になるかもしれませんね。
それではまた。来月もお楽しみに!
 

*1 http://weblog.rubyonrails.org/2014/12/19/Rails-4-2-final/?utm_source=rubyweekly&utm_medium=email
 
*2 https://www.ruby-lang.org/en/news/2014/12/25/ruby-2-2-0-released/
 
*3 http://weblog.rubyonrails.org/2014/12/19/Rails-4-2-final/
 
*4 http://rubini.us/2014/12/31/matz-s-ruby-developers-don-t-use-rubyspec/, https://news.ycombinator.com/item?id=8821015
 
*5 http://www.iso.org/iso/iso_catalogue/catalogue_tc/catalogue_detail.htm?csnumber=59579
 
*6 https://gist.github.com/nateberkopec/11dbcf0ee7f2c08450ea, https://news.ycombinator.com/item?id=8823245
 
*7 https://rubygems.org/gems/minitest
 
*8 https://relishapp.com/rspec
 
*9 https://github.com/thoughtbot/shoulda
 
*10 http://cukes.info/
 
*11 https://github.com/thumblemonks/riot
 
*12 http://jeffkreeftmeijer.com/2010/steak-because-cucumber-is-for-vegetarians/
 
*13 https://speakerdeck.com/ahawkins/bow-before-minitest
 
*14 https://whatdoitest.com/start-with-test-unit-instead-of-rspec
 

転載元(トランスネット社 ・2015/01/28掲載)
(WEB転載許諾取得済)

バックナンバーはこちら

IT系のお仕事特集

お仕事のご紹介には、まずヒューマンリソシアへの登録が必要です。
ヒューマンリソシア人材派遣サイトの便利な機能 ・お気に入りの派遣求人のブックマーク ・登録会への予約 ・有給休暇の管理 ・WEB給与明細の確認 ・お気に入りの情報をメール受信
登録会の入力手続きをあらかじめおこなえます。

ヒューマンリソシア派遣サービスに 登録する 無料

ページトップへ戻る
ヒューマンリソシア派遣サービスに 登録する 無料
ページトップへ戻る