mocha 0.10.3 → 0.10.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/RELEASE.rdoc +9 -1
- data/{Gemfile.minitest.1.3.0 → gemfiles/Gemfile.minitest.1.3.0} +1 -1
- data/{Gemfile.minitest.1.4.0 → gemfiles/Gemfile.minitest.1.4.0} +1 -1
- data/{Gemfile.minitest.1.4.1 → gemfiles/Gemfile.minitest.1.4.1} +2 -2
- data/{Gemfile.minitest.1.4.2 → gemfiles/Gemfile.minitest.1.4.2} +2 -2
- data/{Gemfile.minitest.2.0.0 → gemfiles/Gemfile.minitest.2.0.0} +2 -2
- data/{Gemfile.minitest.2.0.1 → gemfiles/Gemfile.minitest.2.0.1} +2 -2
- data/{Gemfile.minitest.2.3.0 → gemfiles/Gemfile.minitest.2.3.0} +1 -1
- data/{Gemfile.minitest.latest → gemfiles/Gemfile.minitest.latest} +1 -1
- data/{Gemfile.test-unit.2.0.0 → gemfiles/Gemfile.test-unit.2.0.0} +2 -2
- data/{Gemfile.test-unit.2.0.1 → gemfiles/Gemfile.test-unit.2.0.1} +2 -2
- data/{Gemfile.test-unit.2.0.3 → gemfiles/Gemfile.test-unit.2.0.3} +1 -1
- data/{Gemfile.test-unit.latest → gemfiles/Gemfile.test-unit.latest} +2 -2
- data/lib/mocha/any_instance_method.rb +5 -1
- data/lib/mocha/class_method.rb +7 -0
- data/lib/mocha/expectation_list.rb +5 -1
- data/lib/mocha/integration/mini_test.rb +3 -3
- data/lib/mocha/integration/mini_test/version_13.rb +1 -1
- data/lib/mocha/integration/mini_test/version_140.rb +1 -1
- data/lib/mocha/integration/mini_test/version_142_to_172.rb +1 -1
- data/lib/mocha/integration/mini_test/version_200.rb +1 -1
- data/lib/mocha/integration/mini_test/version_201_to_222.rb +1 -1
- data/lib/mocha/integration/mini_test/version_230_to_262.rb +1 -1
- data/lib/mocha/integration/test_unit.rb +3 -3
- data/lib/mocha/integration/test_unit/gem_version_200.rb +1 -1
- data/lib/mocha/integration/test_unit/gem_version_201_to_202.rb +1 -1
- data/lib/mocha/integration/test_unit/gem_version_203_to_220.rb +1 -1
- data/lib/mocha/integration/test_unit/gem_version_230_to_240.rb +1 -1
- data/lib/mocha/integration/test_unit/ruby_version_185_and_below.rb +1 -1
- data/lib/mocha/integration/test_unit/ruby_version_186_and_above.rb +1 -1
- data/lib/mocha/mock.rb +5 -1
- data/lib/mocha/options.rb +1 -1
- data/lib/mocha/parameter_matchers/has_entry.rb +10 -1
- data/lib/mocha/version.rb +1 -1
- data/test/acceptance/issue_65_test.rb +63 -0
- data/test/acceptance/sequence_test.rb +10 -4
- data/test/unit/any_instance_method_test.rb +1 -0
- data/test/unit/class_method_test.rb +19 -1
- data/test/unit/parameter_matchers/has_entry_test.rb +16 -2
- metadata +17 -16
data/RELEASE.rdoc
CHANGED
@@ -1,4 +1,12 @@
|
|
1
|
-
= 0.10.
|
1
|
+
= 0.10.4 ()
|
2
|
+
* Fix for issue #65 - expectations not being verified in subsequent tests
|
3
|
+
* Fix for issue #63 - require Mocha::Mockery at Mocha::Mock class load time and not on invocation of Mock#method_missing.
|
4
|
+
* Fix for issue #45 - raise ArgumentError if Mocha::ParameterMatchers#has_entry is given
|
5
|
+
Hash with wrong number of entries.
|
6
|
+
* Make global variable name more obscure to avoid clashes with other libraries.
|
7
|
+
* Move travis-ci-related gemfiles into their own directory.
|
8
|
+
|
9
|
+
= 0.10.3 (e7f88af8e7c3396bc85fe9f9cb9e5f5fef04bea2)
|
2
10
|
* Fix for issue #57. Gem::Requirement#=~ was only added in rubygems v1.8.0, but Object#=~ means the result of various monkey-patching checks is always false/nil for earlier versions of rubygems. However, the method it aliases #satisfied_by? has existed since Gem::Dependency was extracted from Gem::Version in rubygems v0.9.4.4, so it's much safer to use that. Thanks to fguillen for reporting and helping with diagnosis.
|
3
11
|
|
4
12
|
= 0.10.2 (e05d9a555f1cf97c5961900dab0d884e9753257b)
|
data/lib/mocha/class_method.rb
CHANGED
@@ -20,12 +20,19 @@ module Mocha
|
|
20
20
|
remove_new_method
|
21
21
|
restore_original_method
|
22
22
|
mock.unstub(method.to_sym)
|
23
|
+
unless mock.any_expectations?
|
24
|
+
reset_mocha
|
25
|
+
end
|
23
26
|
end
|
24
27
|
|
25
28
|
def mock
|
26
29
|
stubbee.mocha
|
27
30
|
end
|
28
31
|
|
32
|
+
def reset_mocha
|
33
|
+
stubbee.reset_mocha
|
34
|
+
end
|
35
|
+
|
29
36
|
def hide_original_method
|
30
37
|
if method_exists?(method)
|
31
38
|
begin
|
@@ -27,7 +27,7 @@ if !MiniTest::Unit::TestCase.ancestors.include?(Mocha::API)
|
|
27
27
|
Gem::Version.new('0.0.0')
|
28
28
|
end
|
29
29
|
|
30
|
-
$stderr.puts "Detected MiniTest version: #{mini_test_version}" if $
|
30
|
+
$stderr.puts "Detected MiniTest version: #{mini_test_version}" if $mocha_options['debug']
|
31
31
|
|
32
32
|
if Gem::Requirement.new('>= 1.3.0', '<= 1.3.1').satisfied_by?(mini_test_version)
|
33
33
|
include Mocha::Integration::MiniTest::Version13
|
@@ -42,10 +42,10 @@ if !MiniTest::Unit::TestCase.ancestors.include?(Mocha::API)
|
|
42
42
|
elsif Gem::Requirement.new('>= 2.0.1', '<= 2.2.2').satisfied_by?(mini_test_version)
|
43
43
|
include Mocha::Integration::MiniTest::Version201To222
|
44
44
|
elsif Gem::Requirement.new('>= 2.3.0').satisfied_by?(mini_test_version)
|
45
|
-
$stderr.puts "*** MiniTest integration has not been verified but patching anyway ***" if (Gem::Requirement.new('> 2.6.2').satisfied_by?(mini_test_version)) && $
|
45
|
+
$stderr.puts "*** MiniTest integration has not been verified but patching anyway ***" if (Gem::Requirement.new('> 2.6.2').satisfied_by?(mini_test_version)) && $mocha_options['debug']
|
46
46
|
include Mocha::Integration::MiniTest::Version230To262
|
47
47
|
else
|
48
|
-
$stderr.puts "*** No Mocha integration for MiniTest version ***" if $
|
48
|
+
$stderr.puts "*** No Mocha integration for MiniTest version ***" if $mocha_options['debug']
|
49
49
|
end
|
50
50
|
|
51
51
|
end
|
@@ -8,7 +8,7 @@ module Mocha
|
|
8
8
|
|
9
9
|
module Version13
|
10
10
|
def self.included(mod)
|
11
|
-
$stderr.puts "Monkey patching MiniTest v1.3" if $
|
11
|
+
$stderr.puts "Monkey patching MiniTest v1.3" if $mocha_options['debug']
|
12
12
|
end
|
13
13
|
def run runner
|
14
14
|
assertion_counter = AssertionCounter.new(self)
|
@@ -9,7 +9,7 @@ module Mocha
|
|
9
9
|
|
10
10
|
module Version140
|
11
11
|
def self.included(mod)
|
12
|
-
$stderr.puts "Monkey patching MiniTest v1.4.0" if $
|
12
|
+
$stderr.puts "Monkey patching MiniTest v1.4.0" if $mocha_options['debug']
|
13
13
|
end
|
14
14
|
def run runner
|
15
15
|
assertion_counter = AssertionCounter.new(self)
|
@@ -9,7 +9,7 @@ module Mocha
|
|
9
9
|
|
10
10
|
module Version142To172
|
11
11
|
def self.included(mod)
|
12
|
-
$stderr.puts "Monkey patching MiniTest >= v1.4.2 and <= v1.7.2" if $
|
12
|
+
$stderr.puts "Monkey patching MiniTest >= v1.4.2 and <= v1.7.2" if $mocha_options['debug']
|
13
13
|
end
|
14
14
|
def run runner
|
15
15
|
trap 'INFO' do
|
@@ -9,7 +9,7 @@ module Mocha
|
|
9
9
|
|
10
10
|
module Version201To222
|
11
11
|
def self.included(mod)
|
12
|
-
$stderr.puts "Monkey patching MiniTest >= v2.0.1 <= v2.2.2" if $
|
12
|
+
$stderr.puts "Monkey patching MiniTest >= v2.0.1 <= v2.2.2" if $mocha_options['debug']
|
13
13
|
end
|
14
14
|
def run runner
|
15
15
|
trap 'INFO' do
|
@@ -9,7 +9,7 @@ module Mocha
|
|
9
9
|
|
10
10
|
module Version230To262
|
11
11
|
def self.included(mod)
|
12
|
-
$stderr.puts "Monkey patching MiniTest >= v2.3.0 <= v2.6.2" if $
|
12
|
+
$stderr.puts "Monkey patching MiniTest >= v2.3.0 <= v2.6.2" if $mocha_options['debug']
|
13
13
|
end
|
14
14
|
def run runner
|
15
15
|
trap 'INFO' do
|
@@ -26,7 +26,7 @@ if !Test::Unit::TestCase.ancestors.include?(Mocha::API)
|
|
26
26
|
Gem::Version.new('1.x')
|
27
27
|
end
|
28
28
|
|
29
|
-
if $
|
29
|
+
if $mocha_options['debug']
|
30
30
|
$stderr.puts "Detected Ruby version: #{RUBY_VERSION}"
|
31
31
|
$stderr.puts "Detected Test::Unit version: #{test_unit_version}"
|
32
32
|
end
|
@@ -44,10 +44,10 @@ if !Test::Unit::TestCase.ancestors.include?(Mocha::API)
|
|
44
44
|
elsif Gem::Requirement.new('>= 2.0.3', '<= 2.2.0').satisfied_by?(test_unit_version)
|
45
45
|
include Mocha::Integration::TestUnit::GemVersion203To220
|
46
46
|
elsif Gem::Requirement.new('>= 2.3.0').satisfied_by?(test_unit_version)
|
47
|
-
$stderr.puts "*** Test::Unit integration has not been verified but patching anyway ***" if (Gem::Requirement.new('> 2.4.0').satisfied_by?(test_unit_version)) && $
|
47
|
+
$stderr.puts "*** Test::Unit integration has not been verified but patching anyway ***" if (Gem::Requirement.new('> 2.4.0').satisfied_by?(test_unit_version)) && $mocha_options['debug']
|
48
48
|
include Mocha::Integration::TestUnit::GemVersion230To240
|
49
49
|
else
|
50
|
-
$stderr.puts "*** No Mocha integration for Test::Unit version ***" if $
|
50
|
+
$stderr.puts "*** No Mocha integration for Test::Unit version ***" if $mocha_options['debug']
|
51
51
|
end
|
52
52
|
|
53
53
|
end
|
@@ -10,7 +10,7 @@ module Mocha
|
|
10
10
|
|
11
11
|
module GemVersion200
|
12
12
|
def self.included(mod)
|
13
|
-
$stderr.puts "Monkey patching Test::Unit gem v2.0.0" if $
|
13
|
+
$stderr.puts "Monkey patching Test::Unit gem v2.0.0" if $mocha_options['debug']
|
14
14
|
end
|
15
15
|
def run(result)
|
16
16
|
assertion_counter = AssertionCounter.new(result)
|
@@ -10,7 +10,7 @@ module Mocha
|
|
10
10
|
|
11
11
|
module GemVersion201To202
|
12
12
|
def self.included(mod)
|
13
|
-
$stderr.puts "Monkey patching Test::Unit gem >= v2.0.1 and <= v2.0.2" if $
|
13
|
+
$stderr.puts "Monkey patching Test::Unit gem >= v2.0.1 and <= v2.0.2" if $mocha_options['debug']
|
14
14
|
end
|
15
15
|
def run(result)
|
16
16
|
assertion_counter = AssertionCounter.new(result)
|
@@ -10,7 +10,7 @@ module Mocha
|
|
10
10
|
|
11
11
|
module GemVersion203To220
|
12
12
|
def self.included(mod)
|
13
|
-
$stderr.puts "Monkey patching Test::Unit gem >= v2.0.3 and <= v2.2.0" if $
|
13
|
+
$stderr.puts "Monkey patching Test::Unit gem >= v2.0.3 and <= v2.2.0" if $mocha_options['debug']
|
14
14
|
end
|
15
15
|
def run(result)
|
16
16
|
assertion_counter = AssertionCounter.new(result)
|
@@ -10,7 +10,7 @@ module Mocha
|
|
10
10
|
|
11
11
|
module GemVersion230To240
|
12
12
|
def self.included(mod)
|
13
|
-
$stderr.puts "Monkey patching Test::Unit gem >= v2.3.0 and <= v2.4.0" if $
|
13
|
+
$stderr.puts "Monkey patching Test::Unit gem >= v2.3.0 and <= v2.4.0" if $mocha_options['debug']
|
14
14
|
end
|
15
15
|
def run(result)
|
16
16
|
assertion_counter = AssertionCounter.new(result)
|
@@ -10,7 +10,7 @@ module Mocha
|
|
10
10
|
|
11
11
|
module RubyVersion185AndBelow
|
12
12
|
def self.included(mod)
|
13
|
-
$stderr.puts "Monkey patching Test::Unit for Ruby <= v1.8.5" if $
|
13
|
+
$stderr.puts "Monkey patching Test::Unit for Ruby <= v1.8.5" if $mocha_options['debug']
|
14
14
|
end
|
15
15
|
def run(result)
|
16
16
|
assertion_counter = AssertionCounter.new(result)
|
@@ -10,7 +10,7 @@ module Mocha
|
|
10
10
|
|
11
11
|
module RubyVersion186AndAbove
|
12
12
|
def self.included(mod)
|
13
|
-
$stderr.puts "Monkey patching Test::Unit for Ruby >= v1.8.6" if $
|
13
|
+
$stderr.puts "Monkey patching Test::Unit for Ruby >= v1.8.6" if $mocha_options['debug']
|
14
14
|
end
|
15
15
|
def run(result)
|
16
16
|
assertion_counter = AssertionCounter.new(result)
|
data/lib/mocha/mock.rb
CHANGED
@@ -6,6 +6,7 @@ require 'mocha/method_matcher'
|
|
6
6
|
require 'mocha/parameters_matcher'
|
7
7
|
require 'mocha/unexpected_invocation'
|
8
8
|
require 'mocha/argument_iterator'
|
9
|
+
require 'mocha/mockery'
|
9
10
|
|
10
11
|
module Mocha # :nodoc:
|
11
12
|
|
@@ -163,7 +164,6 @@ module Mocha # :nodoc:
|
|
163
164
|
if (matching_expectation = @expectations.match(symbol, *arguments)) || (!matching_expectation && !@everything_stubbed)
|
164
165
|
matching_expectation.invoke(&block) if matching_expectation
|
165
166
|
message = UnexpectedInvocation.new(self, symbol, *arguments).to_s
|
166
|
-
require 'mocha/mockery'
|
167
167
|
message << Mockery.instance.mocha_inspect
|
168
168
|
raise ExpectationError.new(message, caller)
|
169
169
|
end
|
@@ -198,6 +198,10 @@ module Mocha # :nodoc:
|
|
198
198
|
self.__metaclass__.send(:undef_method, method_name) if self.__metaclass__.method_defined?(method_name)
|
199
199
|
end
|
200
200
|
|
201
|
+
def any_expectations?
|
202
|
+
@expectations.any?
|
203
|
+
end
|
204
|
+
|
201
205
|
# :startdoc:
|
202
206
|
|
203
207
|
end
|
data/lib/mocha/options.rb
CHANGED
@@ -1 +1 @@
|
|
1
|
-
$
|
1
|
+
$mocha_options = (ENV['MOCHA_OPTIONS'] || '').split(',').inject({}) { |hash, key| hash[key] = true; hash }
|
@@ -29,7 +29,16 @@ module Mocha
|
|
29
29
|
# # error raised, because method_1 was not called with Hash containing entry: 'key_1' => 1
|
30
30
|
def has_entry(*options)
|
31
31
|
key, value = options.shift, options.shift
|
32
|
-
|
32
|
+
if key.is_a?(Hash)
|
33
|
+
case key.length
|
34
|
+
when 0
|
35
|
+
raise ArgumentError.new("Argument has no entries.")
|
36
|
+
when 1
|
37
|
+
key, value = key.to_a.flatten
|
38
|
+
else
|
39
|
+
raise ArgumentError.new("Argument has multiple entries. Use Mocha::ParameterMatchers#has_entries instead.")
|
40
|
+
end
|
41
|
+
end
|
33
42
|
HasEntry.new(key, value)
|
34
43
|
end
|
35
44
|
|
data/lib/mocha/version.rb
CHANGED
@@ -0,0 +1,63 @@
|
|
1
|
+
require File.expand_path('../acceptance_test_helper', __FILE__)
|
2
|
+
require 'mocha'
|
3
|
+
|
4
|
+
class Issue65Test < Test::Unit::TestCase
|
5
|
+
|
6
|
+
include AcceptanceTest
|
7
|
+
|
8
|
+
def setup
|
9
|
+
setup_acceptance_test
|
10
|
+
end
|
11
|
+
|
12
|
+
def teardown
|
13
|
+
teardown_acceptance_test
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_expectations_on_class_methods_on_same_class_should_be_verified_in_consecutive_tests
|
17
|
+
klass = Class.new do
|
18
|
+
def self.foo; end
|
19
|
+
def self.bar; end
|
20
|
+
end
|
21
|
+
test_1 = run_as_test do
|
22
|
+
klass.expects(:foo)
|
23
|
+
klass.foo
|
24
|
+
end
|
25
|
+
assert_passed(test_1)
|
26
|
+
test_2 = run_as_test do
|
27
|
+
klass.expects(:bar)
|
28
|
+
end
|
29
|
+
assert_failed(test_2)
|
30
|
+
end
|
31
|
+
|
32
|
+
def test_expectations_on_any_instance_methods_on_same_class_should_be_verified_in_consecutive_tests
|
33
|
+
klass = Class.new do
|
34
|
+
def foo; end
|
35
|
+
def bar; end
|
36
|
+
end
|
37
|
+
test_1 = run_as_test do
|
38
|
+
klass.any_instance.expects(:foo)
|
39
|
+
klass.new.foo
|
40
|
+
end
|
41
|
+
assert_passed(test_1)
|
42
|
+
test_2 = run_as_test do
|
43
|
+
klass.any_instance.expects(:bar)
|
44
|
+
end
|
45
|
+
assert_failed(test_2)
|
46
|
+
end
|
47
|
+
|
48
|
+
def test_expectations_on_instance_methods_on_same_object_should_be_verified_in_consecutive_tests
|
49
|
+
instance = Class.new do
|
50
|
+
def foo; end
|
51
|
+
def bar; end
|
52
|
+
end.new
|
53
|
+
test_1 = run_as_test do
|
54
|
+
instance.expects(:foo)
|
55
|
+
instance.foo
|
56
|
+
end
|
57
|
+
assert_passed(test_1)
|
58
|
+
test_2 = run_as_test do
|
59
|
+
instance.expects(:bar)
|
60
|
+
end
|
61
|
+
assert_failed(test_2)
|
62
|
+
end
|
63
|
+
end
|
@@ -22,6 +22,7 @@ class SequenceTest < Test::Unit::TestCase
|
|
22
22
|
mock.expects(:second).in_sequence(sequence)
|
23
23
|
|
24
24
|
mock.second
|
25
|
+
mock.first
|
25
26
|
end
|
26
27
|
assert_failed(test_result)
|
27
28
|
end
|
@@ -50,6 +51,7 @@ class SequenceTest < Test::Unit::TestCase
|
|
50
51
|
mock_two.expects(:second).in_sequence(sequence)
|
51
52
|
|
52
53
|
mock_two.second
|
54
|
+
mock_one.first
|
53
55
|
end
|
54
56
|
assert_failed(test_result)
|
55
57
|
end
|
@@ -79,6 +81,7 @@ class SequenceTest < Test::Unit::TestCase
|
|
79
81
|
partial_mock_two.expects(:second).in_sequence(sequence)
|
80
82
|
|
81
83
|
partial_mock_two.second
|
84
|
+
partial_mock_one.first
|
82
85
|
end
|
83
86
|
assert_failed(test_result)
|
84
87
|
end
|
@@ -142,6 +145,7 @@ class SequenceTest < Test::Unit::TestCase
|
|
142
145
|
mock.expects(:second).in_sequence(sequence)
|
143
146
|
|
144
147
|
mock.second
|
148
|
+
mock.first
|
145
149
|
end
|
146
150
|
assert_failed(test_result)
|
147
151
|
assert_match Regexp.new("in sequence 'one'"), test_result.failures.first.message
|
@@ -155,10 +159,11 @@ class SequenceTest < Test::Unit::TestCase
|
|
155
159
|
|
156
160
|
mock.expects(:first).in_sequence(sequence_one)
|
157
161
|
mock.expects(:second).in_sequence(sequence_two)
|
158
|
-
mock.expects(:
|
162
|
+
mock.expects(:third).in_sequence(sequence_one).in_sequence(sequence_two)
|
159
163
|
|
160
164
|
mock.first
|
161
|
-
mock.
|
165
|
+
mock.third
|
166
|
+
mock.second
|
162
167
|
end
|
163
168
|
assert_failed(test_result)
|
164
169
|
assert_match Regexp.new("in sequence 'one'"), test_result.failures.first.message
|
@@ -173,10 +178,11 @@ class SequenceTest < Test::Unit::TestCase
|
|
173
178
|
|
174
179
|
mock.expects(:first).in_sequence(sequence_one)
|
175
180
|
mock.expects(:second).in_sequence(sequence_two)
|
176
|
-
mock.expects(:
|
181
|
+
mock.expects(:third).in_sequence(sequence_one, sequence_two)
|
177
182
|
|
178
183
|
mock.first
|
179
|
-
mock.
|
184
|
+
mock.third
|
185
|
+
mock.second
|
180
186
|
end
|
181
187
|
assert_failed(test_result)
|
182
188
|
assert_match Regexp.new("in sequence 'one'"), test_result.failures.first.message
|
@@ -110,6 +110,7 @@ class AnyInstanceMethodTest < Test::Unit::TestCase
|
|
110
110
|
method.replace_instance_method(:remove_new_method) { }
|
111
111
|
method.replace_instance_method(:restore_original_method) { }
|
112
112
|
mocha = Class.new { class << self; attr_accessor :unstub_method; end; def self.unstub(method); self.unstub_method = method; end; }
|
113
|
+
mocha.define_instance_method(:any_expectations?) { true }
|
113
114
|
method.replace_instance_method(:mock) { mocha }
|
114
115
|
|
115
116
|
method.unstub
|
@@ -183,12 +183,30 @@ class ClassMethodTest < Test::Unit::TestCase
|
|
183
183
|
method = ClassMethod.new(klass, :method_x)
|
184
184
|
method.replace_instance_method(:restore_original_method) { }
|
185
185
|
mocha = Class.new { class << self; attr_accessor :unstub_method; end; def self.unstub(method); self.unstub_method = method; end; }
|
186
|
+
mocha.define_instance_method(:any_expectations?) { true }
|
186
187
|
method.replace_instance_method(:mock) { mocha }
|
187
188
|
|
188
189
|
method.unstub
|
189
190
|
assert_equal mocha.unstub_method, :method_x
|
190
191
|
end
|
191
|
-
|
192
|
+
|
193
|
+
def test_should_call_stubbee_reset_mocha_if_no_expectations_remaining
|
194
|
+
klass = Class.new { def self.method_x; end }
|
195
|
+
method = ClassMethod.new(klass, :method_x)
|
196
|
+
method.replace_instance_method(:remove_new_method) { }
|
197
|
+
method.replace_instance_method(:restore_original_method) { }
|
198
|
+
mocha = Class.new
|
199
|
+
mocha.define_instance_method(:unstub) { }
|
200
|
+
mocha.define_instance_method(:any_expectations?) { false }
|
201
|
+
method.replace_instance_method(:mock) { mocha }
|
202
|
+
stubbee = Class.new { attr_accessor :reset_mocha_called; def reset_mocha; self.reset_mocha_called = true; end; }.new
|
203
|
+
method.replace_instance_method(:stubbee) { stubbee }
|
204
|
+
|
205
|
+
method.unstub
|
206
|
+
|
207
|
+
assert stubbee.reset_mocha_called
|
208
|
+
end
|
209
|
+
|
192
210
|
def test_should_return_mock_for_stubbee
|
193
211
|
mocha = Object.new
|
194
212
|
stubbee = Object.new
|
@@ -78,5 +78,19 @@ class HasEntryTest < Test::Unit::TestCase
|
|
78
78
|
end.new
|
79
79
|
assert !matcher.matches?([object])
|
80
80
|
end
|
81
|
-
|
82
|
-
|
81
|
+
|
82
|
+
def test_should_raise_argument_error_if_no_entries_are_supplied
|
83
|
+
e = assert_raises(ArgumentError) do
|
84
|
+
has_entry({})
|
85
|
+
end
|
86
|
+
assert_equal "Argument has no entries.", e.message
|
87
|
+
end
|
88
|
+
|
89
|
+
def test_should_raise_argument_error_if_multiple_entries_are_supplied
|
90
|
+
e = assert_raises(ArgumentError) do
|
91
|
+
has_entry(:key_1 => 'value_1', :key_2 => 'value_2')
|
92
|
+
end
|
93
|
+
assert_equal "Argument has multiple entries. Use Mocha::ParameterMatchers#has_entries instead.", e.message
|
94
|
+
end
|
95
|
+
|
96
|
+
end
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mocha
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 63
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 10
|
9
|
-
-
|
10
|
-
version: 0.10.
|
9
|
+
- 4
|
10
|
+
version: 0.10.4
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- James Mead
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-
|
18
|
+
date: 2012-02-10 00:00:00 +00:00
|
19
19
|
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
@@ -107,18 +107,6 @@ files:
|
|
107
107
|
- .gemtest
|
108
108
|
- COPYING.rdoc
|
109
109
|
- Gemfile
|
110
|
-
- Gemfile.minitest.1.3.0
|
111
|
-
- Gemfile.minitest.1.4.0
|
112
|
-
- Gemfile.minitest.1.4.1
|
113
|
-
- Gemfile.minitest.1.4.2
|
114
|
-
- Gemfile.minitest.2.0.0
|
115
|
-
- Gemfile.minitest.2.0.1
|
116
|
-
- Gemfile.minitest.2.3.0
|
117
|
-
- Gemfile.minitest.latest
|
118
|
-
- Gemfile.test-unit.2.0.0
|
119
|
-
- Gemfile.test-unit.2.0.1
|
120
|
-
- Gemfile.test-unit.2.0.3
|
121
|
-
- Gemfile.test-unit.latest
|
122
110
|
- MIT-LICENSE.rdoc
|
123
111
|
- README.rdoc
|
124
112
|
- RELEASE.rdoc
|
@@ -126,6 +114,18 @@ files:
|
|
126
114
|
- examples/misc.rb
|
127
115
|
- examples/mocha.rb
|
128
116
|
- examples/stubba.rb
|
117
|
+
- gemfiles/Gemfile.minitest.1.3.0
|
118
|
+
- gemfiles/Gemfile.minitest.1.4.0
|
119
|
+
- gemfiles/Gemfile.minitest.1.4.1
|
120
|
+
- gemfiles/Gemfile.minitest.1.4.2
|
121
|
+
- gemfiles/Gemfile.minitest.2.0.0
|
122
|
+
- gemfiles/Gemfile.minitest.2.0.1
|
123
|
+
- gemfiles/Gemfile.minitest.2.3.0
|
124
|
+
- gemfiles/Gemfile.minitest.latest
|
125
|
+
- gemfiles/Gemfile.test-unit.2.0.0
|
126
|
+
- gemfiles/Gemfile.test-unit.2.0.1
|
127
|
+
- gemfiles/Gemfile.test-unit.2.0.3
|
128
|
+
- gemfiles/Gemfile.test-unit.latest
|
129
129
|
- init.rb
|
130
130
|
- lib/mocha.rb
|
131
131
|
- lib/mocha/any_instance_method.rb
|
@@ -222,6 +222,7 @@ files:
|
|
222
222
|
- test/acceptance/expectations_on_multiple_methods_test.rb
|
223
223
|
- test/acceptance/expected_invocation_count_test.rb
|
224
224
|
- test/acceptance/failure_messages_test.rb
|
225
|
+
- test/acceptance/issue_65_test.rb
|
225
226
|
- test/acceptance/minitest_test.rb
|
226
227
|
- test/acceptance/mocha_example_test.rb
|
227
228
|
- test/acceptance/mocha_test_result_test.rb
|