0.03
Repository is archived
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

Usage

Here is a sample Virtus object

class Post
  include Virtus.model
  attribute :title, String
  attribute :body, String
  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 "has an attribute" do
      expect(described_class).to have_attribute(:title)
    end

    it "has an attribute with a type check" do
      expect(described_class).to have_attribute(:body).of_type(String)
    end

    it "has an array attribute with a type check" do
      expect(described_class).to have_attribute(:comments).of_type(Array, member_type: String)
    end
  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

Changelog

  • Version 1.0.1
    • Remove deprecation notices about legacy matcher syntax
    • Add description to match RSpec 3 matchers
  • Version 1.0.0
    • Upgrade syntax to work with Virtus 1.0.x
  • Version 0.2.0
    • Upgrade to RSpec 3.0