1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67
|
require 'mocha/api'
require 'mocha/integration/assertion_counter'
require 'mocha/expectation_error_factory'
module Mocha
module Integration
module Minitest
# Integrates Mocha into recent versions of Minitest.
#
# See the source code for an example of how to integrate Mocha into a test library.
module Adapter
include Mocha::API
# @private
def self.applicable_to?(minitest_version)
Gem::Requirement.new('>= 3.3.0').satisfied_by?(minitest_version)
end
# @private
def self.description
'adapter for Minitest gem >= v3.3.0'
end
# @private
def self.included(_mod)
Mocha::ExpectationErrorFactory.exception_class = ::Minitest::Assertion
end
# @private
def before_setup
mocha_setup
super
end
# @private
def before_teardown
return unless passed?
assertion_counter = Integration::AssertionCounter.new(self)
mocha_verify(assertion_counter)
ensure
super
end
# @private
def after_teardown
super
mocha_teardown
end
# @private
def mocha_test_name
if respond_to?(:name)
test_name = name
elsif respond_to?(:__name__) # Older minitest
test_name = __name__
end
if test_name
"#{self.class.name}##{test_name}"
else
self.class.name
end
end
end
end
end
end
|