abstract struct Spectator::Matchers::Matcher

Overview

Common base class for all expectation conditions. A matcher looks at something produced by the SUT and evaluates whether it is correct or not.

Direct Known Subclasses

Defined in:

spectator/matchers/matcher.cr

Constructors

Instance Method Summary

Instance methods inherited from class Object

should(matcher : Spectator::Matchers::TypeMatcher(U), message = nil, *, _file = __FILE__, _line = __LINE__) forall U
should(matcher, message = nil, *, _file = __FILE__, _line = __LINE__)
should
, should_eventually(matcher, message = nil, *, _file = __FILE__, _line = __LINE__) should_eventually, should_never(matcher, message = nil, *, _file = __FILE__, _line = __LINE__) should_never, should_not(matcher : Spectator::Matchers::TypeMatcher(U), message = nil, *, _file = __FILE__, _line = __LINE__) forall U
should_not(matcher : Spectator::Matchers::NilMatcher, message = nil, *, _file = __FILE__, _line = __LINE__)
should_not(matcher, message = nil, *, _file = __FILE__, _line = __LINE__)
should_not

Constructor Detail

def self.new #

[View source]

Instance Method Detail

def ===(actual : Expression(T)) : Bool #

Compares a matcher against a value. Enables composable matchers.


[View source]
def ===(other) : Bool #

Compares a matcher against a value. Enables composable matchers.


[View source]
abstract def description : String #

Short text about the matcher's purpose. This explains what condition satisfies the matcher. The description is used when the one-liner syntax is used.

it { is_expected.to do_something }

The phrasing should be such that it reads "it ___." where the blank is what is returned by this method.


[View source]
def initialize #

[View source]
abstract def match(actual : Expression(T)) : MatchData forall T #

Actually performs the test against the expression (value or block).


[View source]
abstract def negated_match(actual : Expression(T)) : MatchData forall T #

Performs the test against the expression (value or block), but inverted. A successful match with #match should normally fail for this method, and vice-versa.


[View source]