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
|
require 'mocha/api'
require 'mocha/integration/assertion_counter'
require 'mocha/expectation_error'
module Mocha
module Integration
module TestUnit
# Integrates Mocha into recent versions of Test::Unit.
#
# 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?(test_unit_version)
Gem::Requirement.new('>= 2.5.1').satisfied_by?(test_unit_version)
end
# @private
def self.description
'adapter for Test::Unit gem >= v2.5.1'
end
# @private
def self.included(mod)
mod.setup :mocha_setup, before: :prepend
mod.exception_handler(:handle_mocha_expectation_error)
mod.cleanup after: :append do
assertion_counter = Integration::AssertionCounter.new(self)
mocha_verify(assertion_counter)
end
mod.teardown :mocha_teardown, after: :append
end
private
# @private
def mocha_test_name
name
end
# @private
def handle_mocha_expectation_error(exception)
return false unless exception.is_a?(Mocha::ExpectationError)
problem_occurred
add_failure(exception.message, exception.backtrace)
true
end
end
end
end
end
|