0.0
No commit activity in last 3 years
No release in over 3 years
Simple RSpec matchers for Virtus objects
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 10.0.0

Runtime

>= 3.0
>= 1.0
 Project Readme

RSpec::Virtus Build Status Code Climate

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

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create new Pull Request