61

RSpec を使用して、オブジェクトが別のオブジェクトのインスタンスであるかどうかを確認する方法が必要です。例えば:

describe "new shirt" do
  it "should be an instance of a Shirt object"
    # How can i check if it is an instance of a shirt object
  end
end
4

2 に答える 2

140

推奨される構文は次のとおりです。

expect(@object).to be_a Shirt

古い構文は次のとおりです。

@object.should be_an_instance_of Shirt

2つの間に非常に微妙な違いがあることに注意してください。シャツが衣服から継承する場合、これらの期待は両方とも合格します。

expect(@object).to be_a Shirt
expect(@object).to be_a Garment

あなたがそうし、@ objectがシャツである場合、2番目の期待は失敗します:

@object.should be_an_instance_of Shirt
@object.should be_an_instance_of Garment
于 2012-12-20T04:19:52.530 に答える
7

オブジェクトがクラスのインスタンスであるかどうかを確認したいということですか? もしそうなら、それは簡単ですclass

@object.class.should == Shirt
于 2012-11-25T04:59:16.927 に答える