RSpecのテストコード例
FizzBuzzの例
require 'rubygems' require 'rspec' # ファイルを読み込む(定数の初期化) require './fizzbuzz' describe FizzBuzz do # テストする対象を明示する subject { FizzBuzz.new } # context でテストケースの状況を指定する context "与えられた数字が3の倍数でも5の倍数でもないとき" do # itメソッドが1つのテストケースになる it "与えられた数字を返すこと" do subject.say(1).should == 1 end end context "与えられた数字が3の倍数の時" do it { subject.say(3).should == 'Fizz' } end context "与えられた数字が5の倍数の時" do it { subject.say(5).should == 'Buzz' } end context "与えられた数字が3かつ5の倍数の時" do it { subject.say(15).should == 'FizzBuzz' } end end
rspec 実行時にオプションで色付け(-c)したり、結果を仕様的に出力(-fs)できる。
追記
RSpecのshouldはもう古い!新しい記法expectを使おう!
ということなので
require 'rubygems' require 'rspec' # ファイルを読み込む(定数の初期化) require './fizzbuzz' #FizzBuzz 与えられた数字が15のとき describe FizzBuzz do # テストする対象を明示する subject { FizzBuzz.new } # context でテストケースの状況を指定する context "与えられた数字が3の倍数でも5の倍数でもないとき" do # itメソッドが1つのテストケースになる it "与えられた数字を返すこと" do expect(subject.say(1)).to eq 1 end end context "与えられた数字が3の倍数の時" do it { expect(subject.say(3)).to eq 'Fizz' } end context "9の時" do it { expect(subject.say(9)).to eq 'Fizz' } end context "与えられた数字が5の倍数の時" do it { expect(subject.say(5)).to eq 'Buzz' } end context "与えられた数字が3かつ15の倍数の時" do it { expect(subject.say(15)).to eq 'FizzBuzz' } end end
こんな感じらしいです。
「9の時」ってのは無視してくださいはい。
Web開発の基礎徹底攻略 (WEB+DB PRESS plus)
- 作者: 小飼弾,田籠聡,近藤宇智朗,並河祐貴,赤松祐希,井上誠一郎,ミック,天尋左石,和田裕介,WEB+DB PRESS編集部
- 出版社/メーカー: 技術評論社
- 発売日: 2013/07/23
- メディア: 大型本
- この商品を含むブログ (7件) を見る