Skip to content

Commit

Permalink
Hacked on James's MiniTest TestResult code to make the acceptance tes…
Browse files Browse the repository at this point in the history
…ts run on 1.9 HEAD.

There are still 4 failures because for some reason the backtrace line numbers
are off by one. And the minitest_test test case does not run when the whole
suite is ran with MiniTest, still need to look into that.
  • Loading branch information
alloy authored and floehopper committed May 12, 2010
1 parent b7ef802 commit 9a2ca1e
Show file tree
Hide file tree
Showing 37 changed files with 300 additions and 208 deletions.
1 change: 0 additions & 1 deletion lib/mocha/mock.rb
Expand Up @@ -2,7 +2,6 @@
require 'mocha/expectation_list'
require 'mocha/metaclass'
require 'mocha/names'
require 'mocha/mockery'
require 'mocha/method_matcher'
require 'mocha/parameters_matcher'
require 'mocha/unexpected_invocation'
Expand Down
1 change: 1 addition & 0 deletions lib/mocha/mockery.rb
@@ -1,4 +1,5 @@
require 'mocha/central'
require 'mocha/mock'
require 'mocha/names'
require 'mocha/state_machine'
require 'mocha/logger'
Expand Down
2 changes: 1 addition & 1 deletion test/acceptance/api_test.rb
@@ -1,4 +1,4 @@
require File.join(File.dirname(__FILE__), "acceptance_test_helper")
require File.expand_path('../acceptance_test_helper', __FILE__)
require 'mocha_standalone'
require 'simple_counter'

Expand Down
2 changes: 1 addition & 1 deletion test/acceptance/bug_18914_test.rb
@@ -1,4 +1,4 @@
require File.join(File.dirname(__FILE__), "acceptance_test_helper")
require File.expand_path('../acceptance_test_helper', __FILE__)
require 'mocha'

class Bug18914Test < Test::Unit::TestCase
Expand Down
2 changes: 1 addition & 1 deletion test/acceptance/bug_21465_test.rb
@@ -1,4 +1,4 @@
require File.join(File.dirname(__FILE__), "acceptance_test_helper")
require File.expand_path('../acceptance_test_helper', __FILE__)
require 'mocha'

class Bug21465Test < Test::Unit::TestCase
Expand Down
2 changes: 1 addition & 1 deletion test/acceptance/bug_21563_test.rb
@@ -1,4 +1,4 @@
require File.join(File.dirname(__FILE__), "acceptance_test_helper")
require File.expand_path('../acceptance_test_helper', __FILE__)
require 'mocha'

class Bug21563Test < Test::Unit::TestCase
Expand Down
2 changes: 1 addition & 1 deletion test/acceptance/expected_invocation_count_test.rb
@@ -1,4 +1,4 @@
require File.join(File.dirname(__FILE__), "acceptance_test_helper")
require File.expand_path('../acceptance_test_helper', __FILE__)
require 'mocha'

class ExpectedInvocationCountTest < Test::Unit::TestCase
Expand Down
2 changes: 1 addition & 1 deletion test/acceptance/failure_messages_test.rb
@@ -1,4 +1,4 @@
require File.join(File.dirname(__FILE__), "acceptance_test_helper")
require File.expand_path('../acceptance_test_helper', __FILE__)
require 'mocha'

class FailureMessagesTest < Test::Unit::TestCase
Expand Down
252 changes: 128 additions & 124 deletions test/acceptance/minitest_test.rb
@@ -1,153 +1,157 @@
require File.join(File.dirname(__FILE__), "acceptance_test_helper")
require File.expand_path('../acceptance_test_helper', __FILE__)

begin
require 'rubygems'
gem 'minitest'
rescue Gem::LoadError
# MiniTest gem not available
end
if defined?(MiniTest)
warn "TODO: Running suite with MiniTest, running the MiniTestAdapterTest results in an error so skipping it for now."
else
begin
require 'rubygems'
gem 'minitest'
rescue Gem::LoadError
# MiniTest gem not available
end

begin
require 'minitest/unit'
rescue LoadError
# MiniTest not available
end
begin
require 'minitest/unit'
rescue LoadError
# MiniTest not available
end

if defined?(MiniTest)
if defined?(MiniTest)

# monkey-patch MiniTest now that it has hopefully been loaded
require 'mocha/integration/mini_test'
# monkey-patch MiniTest now that it has hopefully been loaded
require 'mocha/integration/mini_test'

class MiniTestSampleTest < MiniTest::Unit::TestCase

def test_mocha_with_fulfilled_expectation
mockee = mock()
mockee.expects(:blah)
mockee.blah
end

def test_mocha_with_unfulfilled_expectation
mockee = mock()
mockee.expects(:blah)
end
class MiniTestSampleTest < MiniTest::Unit::TestCase

def test_mocha_with_fulfilled_expectation
mockee = mock()
mockee.expects(:blah)
mockee.blah
end

def test_mocha_with_unfulfilled_expectation
mockee = mock()
mockee.expects(:blah)
end

def test_mocha_with_unexpected_invocation
mockee = mock()
mockee.blah
end

def test_stubba_with_fulfilled_expectation
stubbee = Class.new { define_method(:blah) {} }.new
stubbee.expects(:blah)
stubbee.blah
end

def test_stubba_with_unfulfilled_expectation
stubbee = Class.new { define_method(:blah) {} }.new
stubbee.expects(:blah)
end

def test_mocha_with_matching_parameter
mockee = mock()
mockee.expects(:blah).with(has_key(:wibble))
mockee.blah(:wibble => 1)
end

def test_mocha_with_non_matching_parameter
mockee = mock()
mockee.expects(:blah).with(has_key(:wibble))
mockee.blah(:wobble => 2)
end

def test_mocha_with_unexpected_invocation
mockee = mock()
mockee.blah
end

def test_stubba_with_fulfilled_expectation
stubbee = Class.new { define_method(:blah) {} }.new
stubbee.expects(:blah)
stubbee.blah
end

def test_stubba_with_unfulfilled_expectation
stubbee = Class.new { define_method(:blah) {} }.new
stubbee.expects(:blah)
end

def test_mocha_with_matching_parameter
mockee = mock()
mockee.expects(:blah).with(has_key(:wibble))
mockee.blah(:wibble => 1)
end

def test_mocha_with_non_matching_parameter
mockee = mock()
mockee.expects(:blah).with(has_key(:wibble))
mockee.blah(:wobble => 2)
end

end

class MiniTestTest < Test::Unit::TestCase
class MiniTestTest < Test::Unit::TestCase

def setup
@output = StringIO.new
MiniTest::Unit.output = @output
@runner = MiniTest::Unit.new
end
def setup
@output = StringIO.new
MiniTest::Unit.output = @output
@runner = MiniTest::Unit.new
end

attr_reader :runner
attr_reader :runner

def test_should_pass_mocha_test
runner.run(%w(-n test_mocha_with_fulfilled_expectation))
def test_should_pass_mocha_test
runner.run(%w(-n test_mocha_with_fulfilled_expectation))

assert_equal 0, runner.failures
assert_equal 0, runner.errors
assert_equal 1, runner.assertion_count
end
assert_equal 0, runner.failures
assert_equal 0, runner.errors
assert_equal 1, runner.assertion_count
end

def test_should_fail_mocha_test_due_to_unfulfilled_expectation
runner.run(%w(-n test_mocha_with_unfulfilled_expectation))
def test_should_fail_mocha_test_due_to_unfulfilled_expectation
runner.run(%w(-n test_mocha_with_unfulfilled_expectation))

assert_equal 1, runner.failures
assert_equal 0, runner.errors
assert_equal 1, runner.assertion_count
assert_not_all_expectation_were_satisfied
end

def test_should_fail_mocha_test_due_to_unexpected_invocation
runner.run(%w(-n test_mocha_with_unexpected_invocation))
assert_equal 1, runner.failures
assert_equal 0, runner.errors
assert_equal 1, runner.assertion_count
assert_not_all_expectation_were_satisfied
end

def test_should_fail_mocha_test_due_to_unexpected_invocation
runner.run(%w(-n test_mocha_with_unexpected_invocation))

assert_equal 1, runner.failures
assert_equal 0, runner.errors
assert_equal 0, runner.assertion_count
assert_unexpected_invocation
end

def test_should_pass_stubba_test
runner.run(%w(-n test_stubba_with_fulfilled_expectation))
assert_equal 1, runner.failures
assert_equal 0, runner.errors
assert_equal 0, runner.assertion_count
assert_unexpected_invocation
end

def test_should_pass_stubba_test
runner.run(%w(-n test_stubba_with_fulfilled_expectation))

assert_equal 0, runner.failures
assert_equal 0, runner.errors
assert_equal 1, runner.assertion_count
end
assert_equal 0, runner.failures
assert_equal 0, runner.errors
assert_equal 1, runner.assertion_count
end

def test_should_fail_stubba_test_due_to_unfulfilled_expectation
runner.run(%w(-n test_stubba_with_unfulfilled_expectation))
def test_should_fail_stubba_test_due_to_unfulfilled_expectation
runner.run(%w(-n test_stubba_with_unfulfilled_expectation))

assert_equal 1, runner.failures
assert_equal 0, runner.errors
assert_equal 1, runner.assertion_count
assert_not_all_expectation_were_satisfied
end

def test_should_pass_mocha_test_with_matching_parameter
runner.run(%w(-n test_mocha_with_matching_parameter))
assert_equal 1, runner.failures
assert_equal 0, runner.errors
assert_equal 1, runner.assertion_count
assert_not_all_expectation_were_satisfied
end

def test_should_pass_mocha_test_with_matching_parameter
runner.run(%w(-n test_mocha_with_matching_parameter))

assert_equal 0, runner.failures
assert_equal 0, runner.errors
assert_equal 1, runner.assertion_count
end
assert_equal 0, runner.failures
assert_equal 0, runner.errors
assert_equal 1, runner.assertion_count
end

def test_should_fail_mocha_test_with_non_matching_parameter
runner.run(%w(-n test_mocha_with_non_matching_parameter))
def test_should_fail_mocha_test_with_non_matching_parameter
runner.run(%w(-n test_mocha_with_non_matching_parameter))

assert_equal 1, runner.failures
assert_equal 0, runner.errors
assert_equal 0, runner.assertion_count # unexpected invocation occurs before expectation is verified
assert_unexpected_invocation
end
assert_equal 1, runner.failures
assert_equal 0, runner.errors
assert_equal 0, runner.assertion_count # unexpected invocation occurs before expectation is verified
assert_unexpected_invocation
end

private
private

def output
@output.rewind
@output.read
end
def output
@output.rewind
@output.read
end

def assert_unexpected_invocation
assert_match Regexp.new('unexpected invocation'), output, "MiniTest output:\n#{output}"
end
def assert_unexpected_invocation
assert_match Regexp.new('unexpected invocation'), output, "MiniTest output:\n#{output}"
end

def assert_not_all_expectation_were_satisfied
assert_match Regexp.new('not all expectations were satisfied'), output, "MiniTest output:\n#{output}"
end

def assert_not_all_expectation_were_satisfied
assert_match Regexp.new('not all expectations were satisfied'), output, "MiniTest output:\n#{output}"
end

else
warn "MiniTest is not available, so MiniTestAdapterTest has not been run."
end

else
warn "MiniTest is not available, so MiniTestAdapterTest has not been run."
end
2 changes: 1 addition & 1 deletion test/acceptance/mocha_test_result_test.rb
@@ -1,4 +1,4 @@
require File.join(File.dirname(__FILE__), "acceptance_test_helper")
require File.expand_path('../acceptance_test_helper', __FILE__)
require 'mocha'
require 'execution_point'

Expand Down
2 changes: 1 addition & 1 deletion test/acceptance/mock_test.rb
@@ -1,4 +1,4 @@
require File.join(File.dirname(__FILE__), "acceptance_test_helper")
require File.expand_path('../acceptance_test_helper', __FILE__)
require 'mocha'

class MockTest < Test::Unit::TestCase
Expand Down
2 changes: 1 addition & 1 deletion test/acceptance/mock_with_initializer_block_test.rb
@@ -1,4 +1,4 @@
require File.join(File.dirname(__FILE__), "acceptance_test_helper")
require File.expand_path('../acceptance_test_helper', __FILE__)
require 'mocha'

class MockWithInitializerBlockTest < Test::Unit::TestCase
Expand Down
2 changes: 1 addition & 1 deletion test/acceptance/mocked_methods_dispatch_test.rb
@@ -1,4 +1,4 @@
require File.join(File.dirname(__FILE__), "acceptance_test_helper")
require File.expand_path('../acceptance_test_helper', __FILE__)
require 'mocha'

class MockedMethodDispatchTest < Test::Unit::TestCase
Expand Down
2 changes: 1 addition & 1 deletion test/acceptance/optional_parameters_test.rb
@@ -1,4 +1,4 @@
require File.join(File.dirname(__FILE__), "acceptance_test_helper")
require File.expand_path('../acceptance_test_helper', __FILE__)
require 'mocha'

class OptionalParameterMatcherTest < Test::Unit::TestCase
Expand Down
2 changes: 1 addition & 1 deletion test/acceptance/parameter_matcher_test.rb
@@ -1,4 +1,4 @@
require File.join(File.dirname(__FILE__), "acceptance_test_helper")
require File.expand_path('../acceptance_test_helper', __FILE__)
require 'mocha'

class ParameterMatcherTest < Test::Unit::TestCase
Expand Down
2 changes: 1 addition & 1 deletion test/acceptance/partial_mocks_test.rb
@@ -1,4 +1,4 @@
require File.join(File.dirname(__FILE__), "acceptance_test_helper")
require File.expand_path('../acceptance_test_helper', __FILE__)
require 'mocha'

class PartialMockTest < Test::Unit::TestCase
Expand Down
2 changes: 1 addition & 1 deletion test/acceptance/return_value_test.rb
@@ -1,4 +1,4 @@
require File.join(File.dirname(__FILE__), "acceptance_test_helper")
require File.expand_path('../acceptance_test_helper', __FILE__)
require 'mocha'

class ReturnValueTest < Test::Unit::TestCase
Expand Down
2 changes: 1 addition & 1 deletion test/acceptance/sequence_test.rb
@@ -1,4 +1,4 @@
require File.join(File.dirname(__FILE__), "acceptance_test_helper")
require File.expand_path('../acceptance_test_helper', __FILE__)
require 'mocha'

class SequenceTest < Test::Unit::TestCase
Expand Down
2 changes: 1 addition & 1 deletion test/acceptance/states_test.rb
@@ -1,4 +1,4 @@
require File.join(File.dirname(__FILE__), "acceptance_test_helper")
require File.expand_path('../acceptance_test_helper', __FILE__)
require 'mocha'

class StatesTest < Test::Unit::TestCase
Expand Down
2 changes: 1 addition & 1 deletion test/acceptance/stub_any_instance_method_test.rb
@@ -1,4 +1,4 @@
require File.join(File.dirname(__FILE__), "acceptance_test_helper")
require File.expand_path('../acceptance_test_helper', __FILE__)
require 'mocha'

class StubAnyInstanceMethodTest < Test::Unit::TestCase
Expand Down

0 comments on commit 9a2ca1e

Please sign in to comment.