Rspec::Has
Designed to prettify one-liners when you have block expectations for subject.
Creates an alias RSpec::Core::MemoizedHelpers.has
to expect { subject }
Simple to use:
class SimplePrinter
def initialize
print 'Printer is ready'
end
end
This goes to
it { has.to output('Printer is ready').to_stdout }
instead of
specify { expect { subject }.to output('Printer is ready').to_stdout }
For more complicated cases:
describe UserFactory do
subject { UserFactory.create_user }
it { has.to change(User, :count).by(1) }
it { has.to output.to_stdout }
context 'with database issues' do
it { has.to output.to_stderr }
it { has.to raise_error }
end
end
This change allows to DRY up, prettify and make specs even more readable.
Installation
Add this line to your application's Gemfile:
gem 'rspec-has'
And then execute:
$ bundle
Or install it yourself as:
$ gem install rspec-has
Contributing
- Fork it ( https://github.com/d-unseductable/rspec-has/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