Rspec::Eventually
I want to be able to do something like this:
it 'eventually matches' do
value = 0
Thread.new do
sleep 1
value = 1
end
expect { value }.to eventually eq 1
expect { value }.to eventually_not eq 0
# Ignore errors raised by the block and retry
expect { client.get 'ABC' }.to eventually(eq 1).by_suppressing_errors
# Change the timeout
expect { client.get 'ZYX' }.to eventually(eq 1).within 5
# Change the pause between retries
expect { client.get 'ZYX' }.to eventually(eq 1).pause_for 1.5
end
Installation
Add this line to your application's Gemfile:
gem 'rspec-eventually'
And then execute:
$ bundle
Or install it yourself as:
$ gem install rspec-eventually
Contributing
- Fork it ( https://github.com/[my-github-username]/rspec-eventually/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request