2016-04-13 34 views
1

rspec'de bağlamlar için koşullu filtreler ayarlamanın bir yolu var mı?rspec bağlamları için koşullu filtreler?

Yalnızca belirli bir değişkeni = 1 olduğunda geçerli olan değişkenlerle bir bağlam var, bu yüzden bu içeriğin sınaması için filtre olarak kullanmak istedim.

context 'if interval is not 1 every non interval day', :if => Reminders::INTERVAL != 1 do 
     num = rand(0..100) 
     non_limbo = num + num/(Reminders::INTERVAL - 1) + 1 

     let!(:evaluation) { create(:evaluation, created_at: non_limbo.days.ago) } 

     it 'doesn't send an email' do 
      expect { subject }.to change { ActionMailer::Base.deliveries.count }.by(0) 
     end 
     end 

cevap

1

Bir durumda, tüm içerik çevreleyebilir: Ben değişkenler o test için bağlam (ideal durum için aşağıya bakınız) ayarlamak için adı geçen kullanıyorum çünkü testin kendisinde filtreyi olamaz:

if Reminders::INTERVAL != 1 
    context 'if interval...' do 
    # ... 
    end 
end