2016-04-13 9 views
1

Gibt es eine Möglichkeit, konditionale Filter für Kontexte in rspec zu setzen?Bedingte Filter für Kontexte in rspec?

Ich habe einen Kontext mit Variablen, die nur gültig sind, wenn eine bestimmte Variable! = 1, also wollte ich das als Filter für den Kontext-Test verwenden. Ich kann den Filter haben auf den Test selbst, weil ich unter Verwendung der Variablen den Kontext für diesen Test (siehe unten für idealen Zustand) einzustellen:

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 

Antwort

1

Sie können den gesamten Kontext in einem Zustand umgeben:

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