Utilizzando RSpec per controllare se qualcosa è un’istanza di un altro oggetto

Ho bisogno di un modo per verificare se un oggetto è un’istanza di un altro oggetto con RSpec. Per esempio:

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

 

2 Replies
  1. 118

    Preferito sintassi è:

    expect(@object).to be_a Shirt

    La vecchia sintassi è:

    @object.should be_an_instance_of Shirt

    Nota che c’è una sottile differenza tra i due. Se Shirt sono di ereditare da Capo quindi entrambe queste aspettative passerà:

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

    Se si e @oggetto è una Camicia, poi la seconda aspettativa non riuscirà:

    @object.should be_an_instance_of Shirt
    @object.should be_an_instance_of Garment
  2. 7

    Vuoi dire che si desidera controllare se un oggetto è un’istanza di un classe? Se è così, che è facile, basta usare class:

    @object.class.should == Shirt
    • Grazie a questo lavoro.

Lascia un commento