1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69
|
require 'spec_helper'
describe RSpec::Retry do
def count
@count ||= 0
@count
end
def count_up
@count ||= 0
@count += 1
end
def set_expectations(expectations)
@expectations = expectations
end
def shift_expectation
@expectations.shift
end
context 'no retry option' do
it 'should work' do
true.should be_true
end
end
context 'with retry option' do
before(:each) { count_up }
context do
before(:all) { set_expectations([false, false, true]) }
it 'should run example until :retry times', :retry => 3 do
true.should == shift_expectation
count.should == 3
end
end
context do
before(:all) { set_expectations([false, true, false]) }
it 'should stop retrying if example is succeeded', :retry => 3 do
true.should == shift_expectation
count.should == 2
end
end
end
describe 'clearing lets' do
before(:all) do
@control = true
end
let(:let_based_on_control) { @control }
after do
@control = false
end
it 'should clear the let when the test fails so it can be reset', :retry => 2 do
let_based_on_control.should == false
end
it 'should not clear the let when the test fails', :retry => 2, :clear_lets_on_failure => false do
let_based_on_control.should == !@control
end
end
end
|