module Minitest::Assertions

Public Instance Methods

assert_must(matcher, subject, msg = nil) click to toggle source

Passes if matcher.matches?(subject) returns true

Example:

def test_validations
  assert_must be_valid, @user
end
# File lib/minitest/matchers_vaccine.rb, line 16
def assert_must(matcher, subject, msg = nil)
  msg = message(msg) do
    if matcher.respond_to? :failure_message
      matcher.failure_message # RSpec 3.x, 1.1
    else
      matcher.failure_message_for_should # RSpec 2.x, 1.2
    end
  end

  assert matcher.matches?(subject), msg
end
assert_wont(matcher, subject, msg = nil) click to toggle source

Passes if matcher.matches?(subject) returns false

Example:

def test_validations
  assert_wont be_valid, @user
end
# File lib/minitest/matchers_vaccine.rb, line 53
def assert_wont(matcher, subject, msg = nil)
  msg = message(msg) do
    if matcher.respond_to? :failure_message_when_negated # RSpec 3.x
      matcher.failure_message_when_negated # RSpec 3.x
    elsif matcher.respond_to? :failure_message_for_should_not
      matcher.failure_message_for_should_not # RSpec 2.x, 1.2
    else
      matcher.negative_failure_message # RSpec 1.1
    end
  end

  if matcher.respond_to? :does_not_match?
    assert matcher.does_not_match?(subject), msg
  else
    refute matcher.matches?(subject), msg
  end
end
must(matcher, subject = ((defined?(@subject) && @subject) || subject()), msg = nil) click to toggle source

Facilitator to assert_must for use with minitest-spec. If no subject given, defaults to matching against the current ‘subject` or the instance variable `@subject`.

Example:

subject { Order.new }

it "should have associations" do
  must belong_to :account
  must have_many :line_items
end
# File lib/minitest/matchers_vaccine.rb, line 41
def must(matcher, subject = ((defined?(@subject) && @subject) || subject()), msg = nil)
  assert_must matcher, subject, msg
end
wont(matcher, subject = ((defined?(@subject) && @subject) || subject()), msg = nil) click to toggle source

Facilitator to assert_wont for use with minitest-spec. If no subject given, defaults to matching against the current ‘subject` or the instance variable `@subject`.

Example:

subject { User.new }

it "should validate" do
  wont have_valid(:email).when("foo", "foo@bar", "@bar.com")
end
# File lib/minitest/matchers_vaccine.rb, line 83
def wont(matcher, subject = ((defined?(@subject) && @subject) || subject()), msg = nil)
  assert_wont matcher, subject, msg
end