Rubyのテストでは、RSpecを使うと幸せになれます。
HelloWorld的な事は Rubyist Magazine - スはスペックのス 【第 1 回】 RSpec の概要と、RSpec on Rails (モデル編) を順に試せばいいと思います。
インストール
$ sudo gem install rspec --format-executable
ruby1.9 と 1.8 を、program-suffix つけて共存させてるような人は、こんなふうに --format-executable オプションを付けておくと、 spec コマンドが 「spec1.9」という名前になって、1.8 の rspec と喧嘩しないようになります。
テストを書いてみる
こんな感じのテストを「spec/array_spec.rb」という名前で保存。
RSpecの文法については このへん を参照。
describe Array, "when empty" do before do @empty_array = [] end it "should be empty" do @empty_array.should be_empty end it "should size 0" do @empty_array.size.should == 0 end after do @empty_array = nil end end
テスト実行
$ spec --colour spec/array_spec.rb .. Finished in 0.047232 seconds 2 examples, 0 failures
テスト通りました。 --colour をつけておくと、テストが失敗したら文字が赤色になったりしていい感じです。
Rake と組み合わせる
いちいち spec コマンドとか打ってらんないので、 Rake からテストを実行できるようにしてみたいと思います。
以下を Rakefile という名前で保存します。
require 'rake' require 'spec/rake/spectask' desc "Run all specs" task :spec do Spec::Rake::SpecTask.new do |t| t.spec_files = FileList['spec/**/*_spec.rb'] t.spec_opts = ['--options', 'spec/spec.opts'] end end
それから、 spec/spec.opts というファイルを作って以下を書き込みます。
--colour --format specdoc --loadby mtime --reverse
これらは spec コマンドの起動時に与えるオプションです。
詳しい説明は省きますが、これらを指定しとくと出力が見やすかったりします。
参考: RSpecでテストコードを書いたまとめ - (゚∀゚)o彡 sasata299's blog
準備ができたら rake を実行してみましょう。
$ rake spec