Simple RSpec matchers for your Virtus objects
Installation
Add this line to your application's Gemfile:
gem 'rspec_virtus'
And then execute:
$ bundle
Or install it yourself as:
$ gem install rspec_virtus
Add to your spec_helper
file next line:
require 'rspec/virtus'
Usage
Here is a sample Virtus object
class Post
include Virtus.model
attribute :title, String
attribute :body, String
attribute :some_default, String, default: 'WOW!'
attribute :comments, Array[String]
end
And with rspec_virtus
we can now make simple assertions about these models
require 'spec_helper'
describe Post
describe 'attributes' do
it { is_expected.to have_virtus_attribute(:title) }
it { is_expected.to have_virtus_attribute(:body).of_type(String) }
it { is_expected.to have_virtus_attribute(:some_default).with_default('WOW!') }
it { is_expected.to have_virtus_attribute(:comments).of_type(String, member_type: String) }
end
end
Contributing
- Fork it
- 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 new Pull Request