Rspec::AsFixture
Load your rspec let variables from fixture files defined by your context.
By defining a fixtures yaml file:
- title: when the hash defines a paperback book
book_hash:
type: paperback
name: Incidences
author: Daniil KharmsYou can automatically load the fixture keys and make them available for your tests:
require 'rspec/as_fixtures'
describe Book do
describe '::from_hash' do
subject { Book.from_hash(book_hash) }
context 'when the hash defines a paperback book', :as_fixture do
its(:type) { should eq 'paperback' }
end
end
endInstallation
Add this line to your application's Gemfile:
$ gem install rspec-as_fixtureUsage
By defult the fixtures will be sought after in the spec/fixtures folder under a filename defined by snake casing the argument of the root describe block of the example being run.
In the example above, which would be in spec/book_spec.rb, the root block is describe Book do, therefore, the glob used to find the file is spec/fixtures/book.{yml,yaml}.
Just like lets, the inner-most context variables take precedence (see base_spec.rb for an example).
Development
After checking out the repo, run bin/setup to install dependencies. Then, run bin/console for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install. To release a new version, update the version number in version.rb, and then run bundle exec rake release to create a git tag for the version, push git commits and tags, and push the .gem file to rubygems.org.
Contributing
- Fork it ( https://github.com/jphastings/rspec-as_fixture/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