module RSpec::Matchers::FailMatchers

def fail(&block)

expect { some_expectation }.to fail
@example

Matches if an expectation fails
def fail(&block)
  raise_error(RSpec::Expectations::ExpectationNotMetError, &block)
end

def fail_including(*snippets)

expect { some_expectation }.to fail_including("portion of some failure message")
@example

Matches if an expectation fails including the provided message
def fail_including(*snippets)
  raise_error(
    RSpec::Expectations::ExpectationNotMetError,
    a_string_including(*snippets)
  )
end

def fail_with(message)

expect { some_expectation }.to fail_with(/some failure message/)
expect { some_expectation }.to fail_with("some failure message")
@example

Matches if an expectation fails with the provided message
def fail_with(message)
  raise_error(RSpec::Expectations::ExpectationNotMetError, message)
end