k-yamadaのブログ

プログラミングのメモ

rspecのテスト方法まとめ

随時追加予定

モックとスタブの書き方

参考:http://d.hatena.ne.jp/mickey24/20100302/1267464477

beforeでmockやstubを定義する場合は、before(:all)ではなくbefore(:each)を使う。
http://www.ruby-forum.com/topic/217974

describe "Device" do
  before(:each) do
    @device = mock(Device)
    @device.stub!(:model).and_return("DESIRE HD")
  end

  it "should create instance" do
    Device.stub!(:new).and_return(@device)
    d = Device.new("12345")
    d.model.should == "DESIRE HD" 
  end

インスタンスメソッドのstubを定義したい場合は、any_instance.stubを使う

    Device.any_instance.stub(:_manufacturer).and_return("HTC")

例外をテストする

proc{ [ターゲットオブジェクト].[ターゲットメソッド] }.should raise_error

http://memo.yomukaku.net/entries/210