Ответ 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