Rspec::WillBeExpected

Designed to prettify one-liners when you have block expectations for subject.
Creates an alias RSpec::Core::MemoizedHelpers.will_be_expected
to
expect { subject }
Simple to use:
class SimplePrinter
def initialize
print 'Printer is ready'
end
end
This goes to
it { will_be_expected.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 { will_be_expected.to change(User.count).by(1) }
it { will_be_expected.to output.to_stdout }
context 'with database issues' do
it { will_be_expected.to output.to_stderr }
it { will_be_expected.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-will_be_expected'
And then execute:
$ bundle
Or install it yourself as:
$ gem install rspec-will_be_expected
Contributing