Skip to content
This repository has been archived by the owner on Jul 23, 2021. It is now read-only.
/ matchi-rspec Public archive

Extend Matchi matchers with some RSpec's ones.

License

Notifications You must be signed in to change notification settings

fixrb/matchi-rspec

Repository files navigation

Matchi::Rspec

Version Yard documentation CI RuboCop License

Extend Matchi matchers with some RSpec's ones.

Installation

Add this line to your application's Gemfile:

gem "matchi-rspec"

And then execute:

bundle

Or install it yourself as:

gem install matchi-rspec

Usage

To make Matchi::Rspec available:

require "matchi/rspec"

All examples here assume that this has been done.

Built-in matchers

Identity matcher:

be = Matchi::Matcher::Be.new(42)
be.matches? { 42 } # => true

Type/class matcher:

be_instance_of = Matchi::Matcher::BeInstanceOf.new(String)
be_instance_of.matches? { "foo" } # => true

Equivalence matcher:

eq = Matchi::Matcher::Eq.new("foo")
eq.matches? { "foo" } # => true

Helper methods

For convenience, it is possible to instantiate a matcher with a method rather than with its class. To do so, the Helper module can be included like this:

require "matchi/helper"

class MatcherCollection
  include ::Matchi::Helper
end

The set of loaded matcher then becomes accessible via a dynamically generated instance method, like these:

matcher = MatcherCollection.new
matcher.be(42).matches? { 44 } # => false
matcher.be_instance_of(String).matches? { "안녕하세요" } # => true

Contact

Versioning

Matchi::Rspec follows Semantic Versioning 2.0.

License

The gem is available as open source under the terms of the MIT License.


This project is sponsored by:
Sashite