2014-10-21 11 views
8

Ho letto un po 'su come si dovrebbe organizzare il codice rspec. Sembra che "contesto" sia usato più per stati di oggetti. Nelle tue parole, come descriveresti come usare "Descrivi" nel codice rspec?Descrivere vs contesto in rspec. Differenze?

Ecco un frammento del mio codice movie_spec.rb:

require_relative 'movie' 

describe Movie do 

    before do 
     @initial_rank = 10 
     @movie = Movie.new("goonies", @initial_rank) 
    end 


    it "has a capitalied title" do 
     expect(@movie.title) == "Goonies" 
    end 


    it "has a string representation" do 
     expect(@movie.to_s).to eq("Goonies has a rank of 10") 
    end 

    it "decreases rank by 1 when given a thumbs down" do 
     @movie.thumbs_down 
     expect(@movie.rank).to eq(@initial_rank - 1) 
    end 

    it "increases rank by 1 when given a thumbs up" do 
     @movie.thumbs_up 
     expect(@movie.rank).to eq(@initial_rank + 1) 
    end 

    context "created with a default rank" do 
     before do 
      @movie = Movie.new("goonies") 
     end 

     it "has a rank of 0" do 
      expect(@movie.rank).to eq(5) 
     end 
    end 

risposta

11

Non c'è molta differenza tra describe e context. La differenza sta nella leggibilità. Tendo ad usare context quando voglio separare le specifiche in base alle condizioni. Io uso describe per separare i metodi in fase di test o il comportamento in fase di test.

Una cosa principale che è cambiata nell'ultimo RSpec è quella "context" can no longer be used as a top-level method.

Problemi correlati