2014-10-21 21 views
8

Rspec kodunu nasıl organize etmesi gerektiği hakkında biraz bilgi okudum. Nesnelerin durumları için "bağlam" daha fazla kullanıldığı anlaşılıyor. Kelimelerinizde, rspec kodundaki "anlatımı" nasıl kullanacağınızı nasıl tanımlarsınız?, rspec'deki içeriğe karşılık gelir. Farklılıklar?

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 

cevap

11

describe ve context arasında pek bir fark yoktur: Burada

benim movie_spec.rb kod snippet'idir. Fark okunabilirlik içinde yatmaktadır. Koşullara göre özellikleri ayırmak istediğimde context'u kullanma eğilimindeyim. Test edilen yöntemleri veya test edilmekte olan davranışları ayırmak için describe kullanıyorum.

En son RSpec'te değiştirilen önemli bir nokta, "context" can no longer be used as a top-level method.