mocha 0.10.0 → 0.10.1
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/README.rdoc +17 -3
- data/RELEASE.rdoc +11 -1
- data/lib/mocha/expectation.rb +3 -0
- data/lib/mocha/integration/mini_test.rb +12 -14
- data/lib/mocha/integration/mini_test/{version_230_to_251.rb → version_230_to_262.rb} +2 -2
- data/lib/mocha/integration/test_unit.rb +10 -12
- data/lib/mocha/integration/test_unit/{gem_version_230_to_233.rb → gem_version_230_to_240.rb} +4 -4
- data/lib/mocha/object.rb +4 -1
- data/lib/mocha/version.rb +1 -1
- data/mocha.gemspec +6 -3
- data/test/unit/object_test.rb +6 -1
- metadata +39 -23
data/README.rdoc
CHANGED
@@ -12,12 +12,26 @@ Mocha was harvested from projects at {Reevoo}[http://www.reevoo.com/] by me ({Ja
|
|
12
12
|
|
13
13
|
https://secure.travis-ci.org/floehopper/mocha.png
|
14
14
|
|
15
|
-
==
|
15
|
+
== Installation
|
16
16
|
|
17
|
-
Install the gem with the following command...
|
17
|
+
Install the latest version of the gem with the following command...
|
18
18
|
|
19
19
|
$ gem install mocha
|
20
20
|
|
21
|
+
Note that if you are intending to use Mocha with Test::Unit or MiniTest, you should only load Mocha *after* loading the relevant test library...
|
22
|
+
|
23
|
+
require "test/unit"
|
24
|
+
require "mocha"
|
25
|
+
|
26
|
+
If you're using Bundler, ensure the correct load order by not auto-requiring Mocha in the Gemfile and then later load it once you know the test library has been loaded...
|
27
|
+
|
28
|
+
# Gemfile
|
29
|
+
gem "mocha", :require => false
|
30
|
+
|
31
|
+
# Elsewhere after Bundler has loaded gems
|
32
|
+
require "test/unit"
|
33
|
+
require "mocha"
|
34
|
+
|
21
35
|
Or install the {Rails}[http://www.rubyonrails.org/] plugin...
|
22
36
|
|
23
37
|
$ script/plugin install git://github.com/floehopper/mocha.git
|
@@ -40,4 +54,4 @@ Or download Mocha...
|
|
40
54
|
|
41
55
|
Copyright Revieworld Ltd. 2006
|
42
56
|
|
43
|
-
You may use, copy and redistribute this library under the same terms as {Ruby itself}[http://www.ruby-lang.org/en/LICENSE.txt] or under the {MIT license}[http://mocha.rubyforge.org/files/MIT-LICENSE.html].
|
57
|
+
You may use, copy and redistribute this library under the same terms as {Ruby itself}[http://www.ruby-lang.org/en/LICENSE.txt] or under the {MIT license}[http://mocha.rubyforge.org/files/MIT-LICENSE.html].
|
data/RELEASE.rdoc
CHANGED
@@ -1,4 +1,14 @@
|
|
1
|
-
= 0.10.
|
1
|
+
= 0.10.1 ()
|
2
|
+
* Merge pull request #51 from meineerde/issues/50-minitest-2.10.0. Use Gem::Requirement & Gem::Version for version comparison. Fixes issue #50. Thanks to meineerde.
|
3
|
+
* Fixed typo in rdoc for Mocha::ObjectMethods.
|
4
|
+
* Improve README as suggested in issue #46. Explain that Mocha must be loaded after test libraries and how to achieve this using Bundler.
|
5
|
+
* Merge pull request #43 - nobody expects the spanish inquisition! Thanks to cairo140.
|
6
|
+
* Fix for issue #39 - improve documentation for Expectation#multiple_yields.
|
7
|
+
* Fix for issue #38 where a subtle change in test-unit v2.3.0 had been missed - only visible in verbose mode.
|
8
|
+
* Support for MiniTest up to v2.6.2 has been verified.
|
9
|
+
* Add explicit development dependency on coderay for generating syntax-highlighted code examples.
|
10
|
+
|
11
|
+
= 0.10.0 (68a4a59e1af74baf3929af418f73f5627bba548d)
|
2
12
|
* Add Expectation#throws to allow a stubbed method to use Kernel#throw.
|
3
13
|
* Updates for versions of Test::Unit up to and including v2.3.3 (including patch by Jens Fahnenbruck).
|
4
14
|
* Updates for versions of MiniTest up to and including v2.5.1.
|
data/lib/mocha/expectation.rb
CHANGED
@@ -230,6 +230,9 @@ module Mocha # :nodoc:
|
|
230
230
|
# :call-seq: multiple_yields(*parameter_groups) -> expectation
|
231
231
|
#
|
232
232
|
# Modifies expectation so that when the expected method is called, it yields multiple times per invocation with the specified +parameter_groups+.
|
233
|
+
#
|
234
|
+
# Note that each +parameter_group+ should be an Array representing the parameters to be passed to the block for a single yield. In the following example when the expected_method is called, the stub will invoke the block twice, the first time it passes 'result_1', 'result_2' as the parameters, and the second time it passes 'result_3' as the parameters.
|
235
|
+
#
|
233
236
|
# object = mock()
|
234
237
|
# object.expects(:expected_method).multiple_yields(['result_1', 'result_2'], ['result_3'])
|
235
238
|
# yielded_values = []
|
@@ -10,7 +10,7 @@ if !MiniTest::Unit::TestCase.ancestors.include?(Mocha::API)
|
|
10
10
|
require 'mocha/integration/mini_test/version_142_to_172'
|
11
11
|
require 'mocha/integration/mini_test/version_200'
|
12
12
|
require 'mocha/integration/mini_test/version_201_to_222'
|
13
|
-
require 'mocha/integration/mini_test/
|
13
|
+
require 'mocha/integration/mini_test/version_230_to_262'
|
14
14
|
|
15
15
|
module MiniTest
|
16
16
|
class Unit
|
@@ -22,30 +22,28 @@ if !MiniTest::Unit::TestCase.ancestors.include?(Mocha::API)
|
|
22
22
|
remove_method :run
|
23
23
|
|
24
24
|
mini_test_version = begin
|
25
|
-
MiniTest::Unit::VERSION
|
25
|
+
Gem::Version.new(MiniTest::Unit::VERSION)
|
26
26
|
rescue LoadError
|
27
|
-
'
|
27
|
+
Gem::Version.new('0.0.0')
|
28
28
|
end
|
29
29
|
|
30
30
|
$stderr.puts "Detected MiniTest version: #{mini_test_version}" if $options['debug']
|
31
31
|
|
32
|
-
if (
|
32
|
+
if Gem::Requirement.new('>= 1.3.0', '<= 1.3.1') =~ mini_test_version
|
33
33
|
include Mocha::Integration::MiniTest::Version13
|
34
|
-
elsif (
|
34
|
+
elsif Gem::Requirement.new('1.4.0') =~ mini_test_version
|
35
35
|
include Mocha::Integration::MiniTest::Version140
|
36
|
-
elsif (
|
36
|
+
elsif Gem::Requirement.new('1.4.1') =~ mini_test_version
|
37
37
|
include Mocha::Integration::MiniTest::Version141
|
38
|
-
elsif (
|
38
|
+
elsif Gem::Requirement.new('>= 1.4.2', '<= 1.7.2') =~ mini_test_version
|
39
39
|
include Mocha::Integration::MiniTest::Version142To172
|
40
|
-
elsif (
|
40
|
+
elsif Gem::Requirement.new('2.0.0') =~ mini_test_version
|
41
41
|
include Mocha::Integration::MiniTest::Version200
|
42
|
-
elsif (
|
42
|
+
elsif Gem::Requirement.new('>= 2.0.1', '<= 2.2.2') =~ mini_test_version
|
43
43
|
include Mocha::Integration::MiniTest::Version201To222
|
44
|
-
elsif (
|
45
|
-
|
46
|
-
|
47
|
-
$stderr.puts "*** MiniTest integration has not been verified but patching anyway ***" if $options['debug']
|
48
|
-
include Mocha::Integration::MiniTest::Version230To251
|
44
|
+
elsif Gem::Requirement.new('>= 2.3.0') =~ mini_test_version
|
45
|
+
$stderr.puts "*** MiniTest integration has not been verified but patching anyway ***" if (Gem::Requirement.new('> 2.6.2') =~ mini_test_version) && $options['debug']
|
46
|
+
include Mocha::Integration::MiniTest::Version230To262
|
49
47
|
else
|
50
48
|
$stderr.puts "*** No Mocha integration for MiniTest version ***" if $options['debug']
|
51
49
|
end
|
@@ -7,9 +7,9 @@ module Mocha
|
|
7
7
|
|
8
8
|
module MiniTest
|
9
9
|
|
10
|
-
module
|
10
|
+
module Version230To262
|
11
11
|
def self.included(mod)
|
12
|
-
$stderr.puts "Monkey patching MiniTest >= v2.3.0 <= v2.
|
12
|
+
$stderr.puts "Monkey patching MiniTest >= v2.3.0 <= v2.6.2" if $options['debug']
|
13
13
|
end
|
14
14
|
def run runner
|
15
15
|
trap 'INFO' do
|
@@ -6,7 +6,7 @@ if !Test::Unit::TestCase.ancestors.include?(Mocha::API)
|
|
6
6
|
require 'mocha/integration/test_unit/gem_version_200'
|
7
7
|
require 'mocha/integration/test_unit/gem_version_201_to_202'
|
8
8
|
require 'mocha/integration/test_unit/gem_version_203_to_220'
|
9
|
-
require 'mocha/integration/test_unit/
|
9
|
+
require 'mocha/integration/test_unit/gem_version_230_to_240'
|
10
10
|
require 'mocha/integration/test_unit/ruby_version_185_and_below'
|
11
11
|
require 'mocha/integration/test_unit/ruby_version_186_and_above'
|
12
12
|
|
@@ -21,9 +21,9 @@ if !Test::Unit::TestCase.ancestors.include?(Mocha::API)
|
|
21
21
|
|
22
22
|
test_unit_version = begin
|
23
23
|
load 'test/unit/version.rb'
|
24
|
-
Test::Unit::VERSION
|
24
|
+
Gem::Version.new(Test::Unit::VERSION)
|
25
25
|
rescue LoadError
|
26
|
-
'1.x'
|
26
|
+
Gem::Version.new('1.x')
|
27
27
|
end
|
28
28
|
|
29
29
|
if $options['debug']
|
@@ -31,23 +31,21 @@ if !Test::Unit::TestCase.ancestors.include?(Mocha::API)
|
|
31
31
|
$stderr.puts "Detected Test::Unit version: #{test_unit_version}"
|
32
32
|
end
|
33
33
|
|
34
|
-
if (test_unit_version == '1.x') || (test_unit_version == '1.2.3')
|
34
|
+
if (test_unit_version == Gem::Version.new('1.x')) || (test_unit_version == Gem::Version.new('1.2.3'))
|
35
35
|
if RUBY_VERSION < '1.8.6'
|
36
36
|
include Mocha::Integration::TestUnit::RubyVersion185AndBelow
|
37
37
|
else
|
38
38
|
include Mocha::Integration::TestUnit::RubyVersion186AndAbove
|
39
39
|
end
|
40
|
-
elsif (
|
40
|
+
elsif Gem::Requirement.new('2.0.0') =~ test_unit_version
|
41
41
|
include Mocha::Integration::TestUnit::GemVersion200
|
42
|
-
elsif (
|
42
|
+
elsif Gem::Requirement.new('>= 2.0.1', '<= 2.0.2') =~ test_unit_version
|
43
43
|
include Mocha::Integration::TestUnit::GemVersion201To202
|
44
|
-
elsif (
|
44
|
+
elsif Gem::Requirement.new('>= 2.0.3', '<= 2.2.0') =~ test_unit_version
|
45
45
|
include Mocha::Integration::TestUnit::GemVersion203To220
|
46
|
-
elsif (
|
47
|
-
|
48
|
-
|
49
|
-
$stderr.puts "*** Test::Unit integration has not been verified but patching anyway ***" if $options['debug']
|
50
|
-
include Mocha::Integration::TestUnit::GemVersion230To233
|
46
|
+
elsif Gem::Requirement.new('>= 2.3.0') =~ test_unit_version
|
47
|
+
$stderr.puts "*** Test::Unit integration has not been verified but patching anyway ***" if (Gem::Requirement.new('> 2.4.0') =~ test_unit_version) && $options['debug']
|
48
|
+
include Mocha::Integration::TestUnit::GemVersion230To240
|
51
49
|
else
|
52
50
|
$stderr.puts "*** No Mocha integration for Test::Unit version ***" if $options['debug']
|
53
51
|
end
|
data/lib/mocha/integration/test_unit/{gem_version_230_to_233.rb → gem_version_230_to_240.rb}
RENAMED
@@ -8,9 +8,9 @@ module Mocha
|
|
8
8
|
|
9
9
|
module TestUnit
|
10
10
|
|
11
|
-
module
|
11
|
+
module GemVersion230To240
|
12
12
|
def self.included(mod)
|
13
|
-
$stderr.puts "Monkey patching Test::Unit gem >= v2.3.0 and <= v2.
|
13
|
+
$stderr.puts "Monkey patching Test::Unit gem >= v2.3.0 and <= v2.4.0" if $options['debug']
|
14
14
|
end
|
15
15
|
def run(result)
|
16
16
|
assertion_counter = AssertionCounter.new(result)
|
@@ -18,7 +18,7 @@ module Mocha
|
|
18
18
|
@internal_data.test_started
|
19
19
|
@_result = result
|
20
20
|
yield(Test::Unit::TestCase::STARTED, name)
|
21
|
-
yield(Test::Unit::TestCase::STARTED_OBJECT,
|
21
|
+
yield(Test::Unit::TestCase::STARTED_OBJECT, self)
|
22
22
|
begin
|
23
23
|
begin
|
24
24
|
run_setup
|
@@ -44,7 +44,7 @@ module Mocha
|
|
44
44
|
@internal_data.test_finished
|
45
45
|
result.add_run
|
46
46
|
yield(Test::Unit::TestCase::FINISHED, name)
|
47
|
-
yield(Test::Unit::TestCase::FINISHED_OBJECT,
|
47
|
+
yield(Test::Unit::TestCase::FINISHED_OBJECT, self)
|
48
48
|
ensure
|
49
49
|
# @_result = nil # For test-spec's after_all :<
|
50
50
|
end
|
data/lib/mocha/object.rb
CHANGED
@@ -7,7 +7,7 @@ require 'mocha/argument_iterator'
|
|
7
7
|
|
8
8
|
module Mocha
|
9
9
|
|
10
|
-
# Methods added all objects to allow mocking and stubbing on real objects.
|
10
|
+
# Methods added to all objects to allow mocking and stubbing on real objects.
|
11
11
|
#
|
12
12
|
# Methods return a Mocha::Expectation which can be further modified by methods on Mocha::Expectation.
|
13
13
|
module ObjectMethods
|
@@ -51,6 +51,9 @@ module Mocha
|
|
51
51
|
# product.expects(:valid?).returns(true)
|
52
52
|
# product.expects(:save).returns(true)
|
53
53
|
def expects(method_name_or_hash)
|
54
|
+
if method_name_or_hash.to_s =~ /the[^a-z]*spanish[^a-z]*inquisition/i
|
55
|
+
raise Mocha::ExpectationError.new('NOBODY EXPECTS THE SPANISH INQUISITION!')
|
56
|
+
end
|
54
57
|
expectation = nil
|
55
58
|
mockery = Mocha::Mockery.instance
|
56
59
|
iterator = ArgumentIterator.new(method_name_or_hash)
|
data/lib/mocha/version.rb
CHANGED
data/mocha.gemspec
CHANGED
@@ -29,15 +29,18 @@ Gem::Specification.new do |s|
|
|
29
29
|
if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
|
30
30
|
s.add_development_dependency("rake", ">= 0")
|
31
31
|
s.add_development_dependency("introspection", "~> 0.0.1")
|
32
|
-
s.add_development_dependency("rdoc", "~>
|
32
|
+
s.add_development_dependency("rdoc", "~> 3.1")
|
33
|
+
s.add_development_dependency("coderay", "~> 0.1")
|
33
34
|
else
|
34
35
|
s.add_dependency("rake", ">= 0")
|
35
36
|
s.add_dependency("introspection", "~> 0.0.1")
|
36
|
-
s.add_dependency("rdoc", "~>
|
37
|
+
s.add_dependency("rdoc", "~> 3.1")
|
38
|
+
s.add_dependency("coderay", "~> 0.1")
|
37
39
|
end
|
38
40
|
else
|
39
41
|
s.add_dependency("rake", ">= 0")
|
40
42
|
s.add_dependency("introspection", "~> 0.0.1")
|
41
|
-
s.add_dependency("rdoc", "~>
|
43
|
+
s.add_dependency("rdoc", "~> 3.1")
|
44
|
+
s.add_dependency("coderay", "~> 0.1")
|
42
45
|
end
|
43
46
|
end
|
data/test/unit/object_test.rb
CHANGED
@@ -78,5 +78,10 @@ class ObjectTest < Test::Unit::TestCase
|
|
78
78
|
any_instance = Class::AnyInstance.new(klass)
|
79
79
|
assert_equal klass, any_instance.stubba_object
|
80
80
|
end
|
81
|
+
|
82
|
+
def test_nobody_expects_the_spanish_inquisition
|
83
|
+
object = Object.new
|
84
|
+
assert_raise(Mocha::ExpectationError) { object.expects(:the_spanish_inquisition) }
|
85
|
+
end
|
81
86
|
|
82
|
-
end
|
87
|
+
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: 53
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 10
|
9
|
-
-
|
10
|
-
version: 0.10.
|
9
|
+
- 1
|
10
|
+
version: 0.10.1
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- James Mead
|
@@ -15,10 +15,12 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date:
|
18
|
+
date: 2012-01-16 00:00:00 +00:00
|
19
|
+
default_executable:
|
19
20
|
dependencies:
|
20
21
|
- !ruby/object:Gem::Dependency
|
21
|
-
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
22
24
|
none: false
|
23
25
|
requirements:
|
24
26
|
- - ~>
|
@@ -29,12 +31,12 @@ dependencies:
|
|
29
31
|
- 0
|
30
32
|
- 1
|
31
33
|
version: 0.0.1
|
32
|
-
requirement: *id001
|
33
34
|
type: :runtime
|
34
35
|
name: metaclass
|
35
|
-
|
36
|
+
version_requirements: *id001
|
36
37
|
- !ruby/object:Gem::Dependency
|
37
|
-
|
38
|
+
prerelease: false
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
40
|
none: false
|
39
41
|
requirements:
|
40
42
|
- - ">="
|
@@ -43,12 +45,12 @@ dependencies:
|
|
43
45
|
segments:
|
44
46
|
- 0
|
45
47
|
version: "0"
|
46
|
-
requirement: *id002
|
47
48
|
type: :development
|
48
49
|
name: rake
|
49
|
-
|
50
|
+
version_requirements: *id002
|
50
51
|
- !ruby/object:Gem::Dependency
|
51
|
-
|
52
|
+
prerelease: false
|
53
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
52
54
|
none: false
|
53
55
|
requirements:
|
54
56
|
- - ~>
|
@@ -59,26 +61,39 @@ dependencies:
|
|
59
61
|
- 0
|
60
62
|
- 1
|
61
63
|
version: 0.0.1
|
62
|
-
requirement: *id003
|
63
64
|
type: :development
|
64
65
|
name: introspection
|
65
|
-
|
66
|
+
version_requirements: *id003
|
66
67
|
- !ruby/object:Gem::Dependency
|
67
|
-
|
68
|
+
prerelease: false
|
69
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
68
70
|
none: false
|
69
71
|
requirements:
|
70
72
|
- - ~>
|
71
73
|
- !ruby/object:Gem::Version
|
72
|
-
hash:
|
74
|
+
hash: 5
|
73
75
|
segments:
|
74
|
-
-
|
75
|
-
-
|
76
|
-
|
77
|
-
version: 2.4.2
|
78
|
-
requirement: *id004
|
76
|
+
- 3
|
77
|
+
- 1
|
78
|
+
version: "3.1"
|
79
79
|
type: :development
|
80
80
|
name: rdoc
|
81
|
+
version_requirements: *id004
|
82
|
+
- !ruby/object:Gem::Dependency
|
81
83
|
prerelease: false
|
84
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
85
|
+
none: false
|
86
|
+
requirements:
|
87
|
+
- - ~>
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
hash: 9
|
90
|
+
segments:
|
91
|
+
- 0
|
92
|
+
- 1
|
93
|
+
version: "0.1"
|
94
|
+
type: :development
|
95
|
+
name: coderay
|
96
|
+
version_requirements: *id005
|
82
97
|
description: Mocking and stubbing library with JMock/SchMock syntax, which allows mocking and stubbing of methods on real (non-mock) classes.
|
83
98
|
email: mocha-developer@googlegroups.com
|
84
99
|
executables: []
|
@@ -140,13 +155,13 @@ files:
|
|
140
155
|
- lib/mocha/integration/mini_test/version_142_to_172.rb
|
141
156
|
- lib/mocha/integration/mini_test/version_200.rb
|
142
157
|
- lib/mocha/integration/mini_test/version_201_to_222.rb
|
143
|
-
- lib/mocha/integration/mini_test/
|
158
|
+
- lib/mocha/integration/mini_test/version_230_to_262.rb
|
144
159
|
- lib/mocha/integration/test_unit.rb
|
145
160
|
- lib/mocha/integration/test_unit/assertion_counter.rb
|
146
161
|
- lib/mocha/integration/test_unit/gem_version_200.rb
|
147
162
|
- lib/mocha/integration/test_unit/gem_version_201_to_202.rb
|
148
163
|
- lib/mocha/integration/test_unit/gem_version_203_to_220.rb
|
149
|
-
- lib/mocha/integration/test_unit/
|
164
|
+
- lib/mocha/integration/test_unit/gem_version_230_to_240.rb
|
150
165
|
- lib/mocha/integration/test_unit/ruby_version_185_and_below.rb
|
151
166
|
- lib/mocha/integration/test_unit/ruby_version_186_and_above.rb
|
152
167
|
- lib/mocha/is_a.rb
|
@@ -305,6 +320,7 @@ files:
|
|
305
320
|
- test/unit/string_inspect_test.rb
|
306
321
|
- test/unit/thrower_test.rb
|
307
322
|
- test/unit/yield_parameters_test.rb
|
323
|
+
has_rdoc: true
|
308
324
|
homepage: http://mocha.rubyforge.org
|
309
325
|
licenses: []
|
310
326
|
|
@@ -338,7 +354,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
338
354
|
requirements: []
|
339
355
|
|
340
356
|
rubyforge_project: mocha
|
341
|
-
rubygems_version: 1.
|
357
|
+
rubygems_version: 1.6.2
|
342
358
|
signing_key:
|
343
359
|
specification_version: 3
|
344
360
|
summary: Mocking and stubbing library
|