Использование RSpec для проверки того, что что-то является экземпляром другого объекта Мне нужен способ проверить, является ли объект экземпляром другого объекта с помощью 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 Ответ 1 Предпочтительный синтаксис: expect(@object).to be_a Shirt Более старый синтаксис: @object.should be_an_instance_of Shirt Обратите внимание, что между ними существует очень тонкая разница. Если Shirt должны были наследовать от Garment, тогда оба этих ожидания пройдут: expect(@object).to be_a Shirt expect(@object).to be_a Garment Если вы это сделаете, а @object - Shirt, то второе ожидание не будет: @object.should be_an_instance_of Shirt @object.should be_an_instance_of Garment Ответ 2 Вы хотите проверить, является ли объект экземпляром класса? Если это так, просто, используйте class: @object.class.should == Shirt
Ответ 1 Предпочтительный синтаксис: expect(@object).to be_a Shirt Более старый синтаксис: @object.should be_an_instance_of Shirt Обратите внимание, что между ними существует очень тонкая разница. Если Shirt должны были наследовать от Garment, тогда оба этих ожидания пройдут: expect(@object).to be_a Shirt expect(@object).to be_a Garment Если вы это сделаете, а @object - Shirt, то второе ожидание не будет: @object.should be_an_instance_of Shirt @object.should be_an_instance_of Garment
Ответ 2 Вы хотите проверить, является ли объект экземпляром класса? Если это так, просто, используйте class: @object.class.should == Shirt