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
endThis 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
endThis 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