我需要一种方法来检查对象是否是使用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
答案 0 :(得分:114)
首选语法为:
expect(@object).to be_a Shirt
旧语法为:
@object.should be_an_instance_of Shirt
请注意,两者之间存在非常微妙的差异。如果衬衫要从Garment继承,那么这两个期望都将通过:
expect(@object).to be_a Shirt
expect(@object).to be_a Garment
如果你这样做并且@object是一个衬衫,那么第二个期望将会失败:
@object.should be_an_instance_of Shirt
@object.should be_an_instance_of Garment
答案 1 :(得分:7)
您的意思是要检查对象是否是类的实例?如果是这样,那很简单,只需使用class
:
@object.class.should == Shirt