mocha 0.9.12 → 0.10.0
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/Gemfile +3 -0
- data/Gemfile.minitest.1.3.0 +7 -0
- data/Gemfile.minitest.1.4.0 +7 -0
- data/Gemfile.minitest.1.4.1 +7 -0
- data/Gemfile.minitest.1.4.2 +7 -0
- data/Gemfile.minitest.2.0.0 +7 -0
- data/Gemfile.minitest.2.0.1 +7 -0
- data/Gemfile.minitest.2.3.0 +7 -0
- data/Gemfile.minitest.latest +7 -0
- data/Gemfile.test-unit.2.0.0 +8 -0
- data/Gemfile.test-unit.2.0.1 +7 -0
- data/Gemfile.test-unit.2.0.3 +7 -0
- data/Gemfile.test-unit.latest +7 -0
- data/README.rdoc +4 -0
- data/RELEASE.rdoc +22 -3
- data/Rakefile +17 -90
- data/init.rb +3 -0
- data/lib/mocha.rb +1 -1
- data/lib/mocha/central.rb +4 -4
- data/lib/mocha/class_method.rb +20 -20
- data/lib/mocha/expectation.rb +33 -6
- data/lib/mocha/instance_method.rb +17 -1
- data/lib/mocha/integration/mini_test.rb +17 -13
- data/lib/mocha/integration/mini_test/{version_201_to_202.rb → version_201_to_222.rb} +9 -9
- data/lib/mocha/integration/mini_test/version_230_to_251.rb +59 -0
- data/lib/mocha/integration/test_unit.rb +17 -13
- data/lib/mocha/integration/test_unit/{gem_version_203_to_209.rb → gem_version_203_to_220.rb} +8 -8
- data/lib/mocha/integration/test_unit/gem_version_230_to_233.rb +58 -0
- data/lib/mocha/mock.rb +14 -14
- data/lib/mocha/object.rb +1 -1
- data/lib/mocha/thrower.rb +15 -0
- data/lib/mocha/version.rb +3 -0
- data/mocha.gemspec +43 -0
- data/test/acceptance/acceptance_test_helper.rb +3 -0
- data/test/acceptance/expectations_on_multiple_methods_test.rb +55 -0
- data/test/acceptance/minitest_test.rb +12 -7
- data/test/acceptance/raise_exception_test.rb +39 -0
- data/test/acceptance/{stub_class_method_test.rb → stub_class_method_defined_on_active_record_association_proxy_test.rb} +3 -103
- data/test/acceptance/stub_class_method_defined_on_class_test.rb +72 -0
- data/test/acceptance/stub_class_method_defined_on_module_test.rb +75 -0
- data/test/acceptance/stub_class_method_defined_on_superclass_test.rb +75 -0
- data/test/acceptance/stub_instance_method_defined_on_active_record_association_proxy_test.rb +93 -0
- data/test/acceptance/stub_instance_method_defined_on_class_and_aliased_test.rb +69 -0
- data/test/acceptance/stub_instance_method_defined_on_class_test.rb +66 -0
- data/test/acceptance/stub_instance_method_defined_on_kernel_module_test.rb +75 -0
- data/test/acceptance/stub_instance_method_defined_on_module_test.rb +75 -0
- data/test/acceptance/stub_instance_method_defined_on_object_class_test.rb +75 -0
- data/test/acceptance/stub_instance_method_defined_on_singleton_class_test.rb +70 -0
- data/test/acceptance/stub_instance_method_defined_on_superclass_test.rb +72 -0
- data/test/acceptance/throw_test.rb +45 -0
- data/test/method_definer.rb +3 -3
- data/test/test_helper.rb +0 -6
- data/test/unit/central_test.rb +7 -3
- data/test/unit/class_method_test.rb +10 -10
- data/test/unit/mockery_test.rb +1 -0
- data/test/unit/thrower_test.rb +20 -0
- metadata +110 -33
- data/lib/mocha/metaclass.rb +0 -13
- data/test/acceptance/stub_instance_method_test.rb +0 -206
- data/test/unit/metaclass_test.rb +0 -22
data/Gemfile
ADDED
data/README.rdoc
CHANGED
@@ -8,6 +8,10 @@ Mocha provides a unified, simple and readable syntax for both traditional mockin
|
|
8
8
|
|
9
9
|
Mocha was harvested from projects at {Reevoo}[http://www.reevoo.com/] by me ({James}[http://jamesmead.org/]) and my (then) colleagues {Ben}[http://www.techbelly.com/], {Chris}[http://chrisroos.co.uk/] and {Paul}[http://po-ru.com/].
|
10
10
|
|
11
|
+
== Build Status
|
12
|
+
|
13
|
+
https://secure.travis-ci.org/floehopper/mocha.png
|
14
|
+
|
11
15
|
== Download and Installation
|
12
16
|
|
13
17
|
Install the gem with the following command...
|
data/RELEASE.rdoc
CHANGED
@@ -1,4 +1,23 @@
|
|
1
|
-
= 0.
|
1
|
+
= 0.10.0 ()
|
2
|
+
* Add Expectation#throws to allow a stubbed method to use Kernel#throw.
|
3
|
+
* Updates for versions of Test::Unit up to and including v2.3.3 (including patch by Jens Fahnenbruck).
|
4
|
+
* Updates for versions of MiniTest up to and including v2.5.1.
|
5
|
+
* Since the singleton method added by Mocha masks the underlying instance method, there's no need to move it out the way and then back again. This fixes Github issue #20, because the original method is left unchanged - https://github.com/floehopper/mocha/issues/20 (thanks to Nick Lewis).
|
6
|
+
* Handle stubbing of a singleton method, leaving the original method unchanged after the test.
|
7
|
+
* When stubbing an instance method that was originally defined as a singleton method, the original method should still exist after the test.
|
8
|
+
* Fixed mis-print in Mocha::ObjectMethods#unstub documentation (patch by Gleb Pomykalov).
|
9
|
+
* Improved test coverage around stubbing of methods defined in different ways - this makes use of the newly extracted introspection gem (although this means some tests are now failing in Ruby v1.9.2).
|
10
|
+
* Added configuration for Travis continuous integration.
|
11
|
+
* Make the gemspec the canonical reference and stop generating it from the Rakefile.
|
12
|
+
* Use the built-in Bundler rake tasks for packaging the gem.
|
13
|
+
* Use the "release" rake task provided by Bundler instead of using the Rake::XForge::Release functionality.
|
14
|
+
* Extract Object#__metaclass__ into a new metaclass gem.
|
15
|
+
* Run rake tasks without `bundle exec`.
|
16
|
+
* Avoid deprecation warning for rdoc rake task.
|
17
|
+
* Remove the `use_test_unit_gem` MOCHA_OPTION which hasn't worked since we switched to bundler - we can now run the tests specifying a different Gemfile instead.
|
18
|
+
* Use multiple Gemfiles seems to run Travis CI builds against multiple version of test-unit & minitest.
|
19
|
+
|
20
|
+
= 0.9.12 (8bb523e8467626c23b271eb529c33fb118e368fe)
|
2
21
|
* Make Mocha's tests pass under Ruby 1.9.2 i.e. using MiniTest. One of the main issues was that we were not parsing stacktraces on MiniTest errors comprehensively enough.
|
3
22
|
* Avoid 'circular require considered harmful' warning when running Mocha's tests in Ruby 1.9.2
|
4
23
|
* Make performance tests work on Ruby 1.9.2 i.e. using MiniTest.
|
@@ -104,7 +123,7 @@
|
|
104
123
|
* when a method on a non-existent method is stubbed
|
105
124
|
* when a method on a non-mock object is stubbed
|
106
125
|
* when a method is stubbed unnecessarily (i.e. the stubbed method is not called during the test)
|
107
|
-
|
126
|
+
|
108
127
|
* Improved error messages
|
109
128
|
* User-friendly list of unsatisfied expectations, satisfied expectations and state machines.
|
110
129
|
* Improved readability of cardinality description.
|
@@ -220,7 +239,7 @@
|
|
220
239
|
Time.now # => Mon Jan 01 00:00:00 UTC 2007
|
221
240
|
Time.stubs(:now).returns(Time.parse('Thu Feb 01 00:00:00 UTC 2007'))
|
222
241
|
Time.now # => Thu Feb 01 00:00:00 UTC 2007
|
223
|
-
|
242
|
+
|
224
243
|
- Deprecate passing an instance of Proc to Expectation#returns.
|
225
244
|
- Explicitly include all Rakefile dependencies in project.
|
226
245
|
- Fixed old Stubba example.
|
data/Rakefile
CHANGED
@@ -1,10 +1,9 @@
|
|
1
|
-
require
|
2
|
-
|
3
|
-
require
|
1
|
+
require "bundler"
|
2
|
+
Bundler::GemHelper.install_tasks
|
3
|
+
require "bundler/setup"
|
4
4
|
|
5
|
-
|
6
|
-
|
7
|
-
end
|
5
|
+
require 'rdoc/task'
|
6
|
+
require 'rake/testtask'
|
8
7
|
|
9
8
|
desc "Run all tests"
|
10
9
|
task 'default' => ['test', 'test:performance']
|
@@ -15,7 +14,9 @@ task 'test' => ['test:units', 'test:acceptance']
|
|
15
14
|
namespace 'test' do
|
16
15
|
|
17
16
|
unit_tests = FileList['test/unit/**/*_test.rb']
|
18
|
-
|
17
|
+
all_acceptance_tests = FileList['test/acceptance/*_test.rb']
|
18
|
+
ruby186_incompatible_acceptance_tests = FileList['test/acceptance/stub_class_method_defined_on_*_test.rb'] + FileList['test/acceptance/stub_instance_method_defined_on_*_test.rb']
|
19
|
+
ruby186_compatible_acceptance_tests = all_acceptance_tests - ruby186_incompatible_acceptance_tests
|
19
20
|
|
20
21
|
desc "Run unit tests"
|
21
22
|
Rake::TestTask.new('units') do |t|
|
@@ -28,11 +29,15 @@ namespace 'test' do
|
|
28
29
|
desc "Run acceptance tests"
|
29
30
|
Rake::TestTask.new('acceptance') do |t|
|
30
31
|
t.libs << 'test'
|
31
|
-
|
32
|
+
if defined?(RUBY_VERSION) && (RUBY_VERSION >= "1.8.7")
|
33
|
+
t.test_files = all_acceptance_tests
|
34
|
+
else
|
35
|
+
t.test_files = ruby186_compatible_acceptance_tests
|
36
|
+
end
|
32
37
|
t.verbose = true
|
33
38
|
t.warning = true
|
34
39
|
end
|
35
|
-
|
40
|
+
|
36
41
|
# require 'rcov/rcovtask'
|
37
42
|
# Rcov::RcovTask.new('coverage') do |t|
|
38
43
|
# t.libs << 'test'
|
@@ -104,11 +109,8 @@ Rake::RDocTask.new('rdoc') do |task|
|
|
104
109
|
)
|
105
110
|
end
|
106
111
|
|
107
|
-
desc "Generate all documentation"
|
108
|
-
task 'generate_docs' => ['clobber_rdoc', 'rdoc', 'examples', 'agiledox.txt']
|
109
|
-
|
110
112
|
desc "Upload RDoc to RubyForge"
|
111
|
-
task 'publish_docs' do
|
113
|
+
task 'publish_docs' => ['clobber_rdoc', 'rdoc', 'examples', 'agiledox.txt'] do
|
112
114
|
require 'rake/contrib/sshpublisher'
|
113
115
|
Rake::SshDirPublisher.new("jamesmead@rubyforge.org", "/var/www/gforge-projects/mocha", "doc").upload
|
114
116
|
end
|
@@ -150,81 +152,6 @@ task 'examples' do
|
|
150
152
|
end
|
151
153
|
end
|
152
154
|
|
153
|
-
|
154
|
-
|
155
|
-
def build_specification(version = Mocha::VERSION)
|
156
|
-
Gem::Specification.new do |s|
|
157
|
-
s.name = "mocha"
|
158
|
-
s.summary = "Mocking and stubbing library"
|
159
|
-
s.version = version
|
160
|
-
s.platform = Gem::Platform::RUBY
|
161
|
-
s.author = 'James Mead'
|
162
|
-
s.description = <<-EOF
|
163
|
-
Mocking and stubbing library with JMock/SchMock syntax, which allows mocking and stubbing of methods on real (non-mock) classes.
|
164
|
-
EOF
|
165
|
-
s.email = 'mocha-developer@googlegroups.com'
|
166
|
-
s.homepage = 'http://mocha.rubyforge.org'
|
167
|
-
s.rubyforge_project = 'mocha'
|
168
|
-
|
169
|
-
s.has_rdoc = true
|
170
|
-
s.extra_rdoc_files = ['README.rdoc', 'COPYING.rdoc']
|
171
|
-
s.rdoc_options << '--title' << 'Mocha' << '--main' << 'README.rdoc' << '--line-numbers'
|
172
|
-
|
173
|
-
if Gem::RubyGemsVersion < '1.2.0'
|
174
|
-
s.add_dependency('rake')
|
175
|
-
else
|
176
|
-
s.add_development_dependency('rake')
|
177
|
-
end
|
178
|
-
|
179
|
-
s.files = FileList['{lib,test,examples}/**/*.rb', '[A-Z]*', '.gemtest'].exclude('TODO').to_a
|
180
|
-
end
|
181
|
-
end
|
182
|
-
|
183
|
-
specification = build_specification
|
184
|
-
|
185
|
-
Rake::GemPackageTask.new(specification) do |package|
|
186
|
-
package.need_zip = true
|
187
|
-
package.need_tar = true
|
188
|
-
end
|
189
|
-
|
190
|
-
desc 'Generate updated gemspec with unique version, which will cause gem to be auto-built on github.'
|
191
|
-
task :gemspec do
|
192
|
-
File.open('mocha.gemspec', 'w') do |output|
|
193
|
-
output << build_specification(Mocha::VERSION + '.' + Time.now.strftime('%Y%m%d%H%M%S')).to_ruby
|
194
|
-
end
|
195
|
-
end
|
196
|
-
|
197
|
-
task 'verify_user' do
|
198
|
-
raise "RUBYFORGE_USER environment variable not set!" unless ENV['RUBYFORGE_USER']
|
199
|
-
end
|
200
|
-
|
201
|
-
task 'verify_password' do
|
202
|
-
raise "RUBYFORGE_PASSWORD environment variable not set!" unless ENV['RUBYFORGE_PASSWORD']
|
203
|
-
end
|
204
|
-
|
205
|
-
desc "Publish package files on RubyForge."
|
206
|
-
task 'publish_packages' => ['verify_user', 'verify_password', 'clobber_package', 'package'] do
|
207
|
-
require 'meta_project'
|
208
|
-
require 'rake/contrib/xforge'
|
209
|
-
release_files = FileList[
|
210
|
-
"pkg/mocha-#{Mocha::VERSION}.gem",
|
211
|
-
"pkg/mocha-#{Mocha::VERSION}.tgz",
|
212
|
-
"pkg/mocha-#{Mocha::VERSION}.zip"
|
213
|
-
]
|
214
|
-
|
215
|
-
Rake::XForge::Release.new(MetaProject::Project::XForge::RubyForge.new('mocha')) do |release|
|
216
|
-
release.user_name = ENV['RUBYFORGE_USER']
|
217
|
-
release.password = ENV['RUBYFORGE_PASSWORD']
|
218
|
-
release.files = release_files.to_a
|
219
|
-
release.release_name = "Mocha #{Mocha::VERSION}"
|
220
|
-
release.release_changes = ''
|
221
|
-
release.release_notes = ''
|
222
|
-
end
|
223
|
-
end
|
224
|
-
|
225
|
-
desc "Do a full release."
|
226
|
-
task 'release' => ['default', 'generate_docs', 'publish_packages', 'publish_docs', 'gemspec'] do
|
227
|
-
puts
|
228
|
-
puts "*** Remember to commit newly generated gemspec after release ***"
|
229
|
-
puts
|
155
|
+
task 'release' => 'default' do
|
156
|
+
Rake::Task['publish_docs'].invoke
|
230
157
|
end
|
data/init.rb
ADDED
data/lib/mocha.rb
CHANGED
data/lib/mocha/central.rb
CHANGED
@@ -9,16 +9,16 @@ module Mocha
|
|
9
9
|
end
|
10
10
|
|
11
11
|
def stub(method)
|
12
|
-
unless stubba_methods.
|
12
|
+
unless stubba_methods.detect { |m| m.matches?(method) }
|
13
13
|
method.stub
|
14
14
|
stubba_methods.push(method)
|
15
15
|
end
|
16
16
|
end
|
17
17
|
|
18
18
|
def unstub(method)
|
19
|
-
if stubba_methods.
|
20
|
-
|
21
|
-
stubba_methods.delete(
|
19
|
+
if existing = stubba_methods.detect { |m| m.matches?(method) }
|
20
|
+
existing.unstub
|
21
|
+
stubba_methods.delete(existing)
|
22
22
|
end
|
23
23
|
end
|
24
24
|
|
data/lib/mocha/class_method.rb
CHANGED
@@ -1,31 +1,31 @@
|
|
1
|
-
require '
|
1
|
+
require 'metaclass'
|
2
2
|
|
3
3
|
module Mocha
|
4
4
|
|
5
5
|
class ClassMethod
|
6
|
-
|
6
|
+
|
7
7
|
attr_reader :stubbee, :method
|
8
|
-
|
8
|
+
|
9
9
|
def initialize(stubbee, method)
|
10
10
|
@stubbee = stubbee
|
11
11
|
@method = RUBY_VERSION < '1.9' ? method.to_s : method.to_sym
|
12
12
|
end
|
13
|
-
|
13
|
+
|
14
14
|
def stub
|
15
15
|
hide_original_method
|
16
16
|
define_new_method
|
17
17
|
end
|
18
|
-
|
18
|
+
|
19
19
|
def unstub
|
20
20
|
remove_new_method
|
21
21
|
restore_original_method
|
22
22
|
stubbee.reset_mocha
|
23
23
|
end
|
24
|
-
|
24
|
+
|
25
25
|
def mock
|
26
26
|
stubbee.mocha
|
27
27
|
end
|
28
|
-
|
28
|
+
|
29
29
|
def hide_original_method
|
30
30
|
if method_exists?(method)
|
31
31
|
begin
|
@@ -35,7 +35,7 @@ module Mocha
|
|
35
35
|
end
|
36
36
|
end
|
37
37
|
end
|
38
|
-
|
38
|
+
|
39
39
|
def define_new_method
|
40
40
|
stubbee.__metaclass__.class_eval(%{
|
41
41
|
def #{method}(*args, &block)
|
@@ -43,11 +43,11 @@ module Mocha
|
|
43
43
|
end
|
44
44
|
}, __FILE__, __LINE__)
|
45
45
|
end
|
46
|
-
|
46
|
+
|
47
47
|
def remove_new_method
|
48
48
|
stubbee.__metaclass__.send(:remove_method, method)
|
49
49
|
end
|
50
|
-
|
50
|
+
|
51
51
|
def restore_original_method
|
52
52
|
if method_exists?(hidden_method)
|
53
53
|
begin
|
@@ -58,7 +58,7 @@ module Mocha
|
|
58
58
|
end
|
59
59
|
end
|
60
60
|
end
|
61
|
-
|
61
|
+
|
62
62
|
def hidden_method
|
63
63
|
if RUBY_VERSION < '1.9'
|
64
64
|
method_name = method.to_s.gsub(/\W/) { |s| "_substituted_character_#{s[0]}_" }
|
@@ -67,25 +67,25 @@ module Mocha
|
|
67
67
|
end
|
68
68
|
hidden_method = "__stubba__#{method_name}__stubba__"
|
69
69
|
RUBY_VERSION < '1.9' ? hidden_method.to_s : hidden_method.to_sym
|
70
|
-
end
|
71
|
-
|
72
|
-
def
|
70
|
+
end
|
71
|
+
|
72
|
+
def matches?(other)
|
73
73
|
return false unless (other.class == self.class)
|
74
74
|
(stubbee.object_id == other.stubbee.object_id) and (method == other.method)
|
75
75
|
end
|
76
|
-
|
76
|
+
|
77
77
|
alias_method :==, :eql?
|
78
|
-
|
78
|
+
|
79
79
|
def to_s
|
80
80
|
"#{stubbee}.#{method}"
|
81
81
|
end
|
82
|
-
|
82
|
+
|
83
83
|
def method_exists?(method)
|
84
84
|
symbol = method.to_sym
|
85
|
-
|
86
|
-
|
85
|
+
__metaclass__ = stubbee.__metaclass__
|
86
|
+
__metaclass__.public_method_defined?(symbol) || __metaclass__.protected_method_defined?(symbol) || __metaclass__.private_method_defined?(symbol)
|
87
87
|
end
|
88
88
|
|
89
89
|
end
|
90
|
-
|
90
|
+
|
91
91
|
end
|
data/lib/mocha/expectation.rb
CHANGED
@@ -3,6 +3,7 @@ require 'mocha/parameters_matcher'
|
|
3
3
|
require 'mocha/expectation_error'
|
4
4
|
require 'mocha/return_values'
|
5
5
|
require 'mocha/exception_raiser'
|
6
|
+
require 'mocha/thrower'
|
6
7
|
require 'mocha/yield_parameters'
|
7
8
|
require 'mocha/is_a'
|
8
9
|
require 'mocha/in_state_ordering_constraint'
|
@@ -287,20 +288,20 @@ module Mocha # :nodoc:
|
|
287
288
|
# :call-seq: raises(exception = RuntimeError, message = nil) -> expectation
|
288
289
|
#
|
289
290
|
# Modifies expectation so that when the expected method is called, it raises the specified +exception+ with the specified +message+ i.e. calls Kernel#raise(exception, message).
|
290
|
-
# object =
|
291
|
-
# object.
|
291
|
+
# object = stub()
|
292
|
+
# object.stubs(:expected_method).raises(Exception, 'message')
|
292
293
|
# object.expected_method # => raises exception of class Exception and with message 'message'
|
293
294
|
# Note that if you have a custom exception class with extra constructor parameters, you can pass in an instance of the exception (just as you can for Kernel#raise).
|
294
|
-
# object =
|
295
|
-
# object.
|
295
|
+
# object = stub()
|
296
|
+
# object.stubs(:expected_method).raises(MyException.new('message', 1, 2, 3))
|
296
297
|
# object.expected_method # => raises the specified instance of MyException
|
297
298
|
# May be called multiple times on the same expectation. Also see Expectation#then.
|
298
|
-
# object =
|
299
|
+
# object = stub()
|
299
300
|
# object.stubs(:expected_method).raises(Exception1).then.raises(Exception2)
|
300
301
|
# object.expected_method # => raises exception of class Exception1
|
301
302
|
# object.expected_method # => raises exception of class Exception2
|
302
303
|
# May be called in conjunction with Expectation#returns on the same expectation.
|
303
|
-
# object =
|
304
|
+
# object = stub()
|
304
305
|
# object.stubs(:expected_method).raises(Exception).then.returns(2, 3)
|
305
306
|
# object.expected_method # => raises exception of class Exception1
|
306
307
|
# object.expected_method # => 2
|
@@ -310,6 +311,32 @@ module Mocha # :nodoc:
|
|
310
311
|
self
|
311
312
|
end
|
312
313
|
|
314
|
+
# :call-seq: throws(tag, object = nil) -> expectation
|
315
|
+
#
|
316
|
+
# Modifies expectation so that when the expected method is called, it throws the specified +tag+ with the specific return value +object+ i.e. calls Kernel#throw(tag, object).
|
317
|
+
# object = stub()
|
318
|
+
# object.stubs(:expected_method).throws(:done)
|
319
|
+
# object.expected_method # => throws tag :done
|
320
|
+
# Note you can also pass in an optional return value +object+ (just as you can for Kernel#throw).
|
321
|
+
# object = stub()
|
322
|
+
# object.stubs(:expected_method).throws(:done, 'result')
|
323
|
+
# object.expected_method # => throws tag :done and causes catch block to return 'result'
|
324
|
+
# May be called multiple times on the same expectation. Also see Expectation#then.
|
325
|
+
# object = stub()
|
326
|
+
# object.stubs(:expected_method).throws(:done).then.throws(:continue)
|
327
|
+
# object.expected_method # => throws :done
|
328
|
+
# object.expected_method # => throws :continue
|
329
|
+
# May be called in conjunction with Expectation#returns on the same expectation.
|
330
|
+
# object = stub()
|
331
|
+
# object.stubs(:expected_method).throws(:done).then.returns(2, 3)
|
332
|
+
# object.expected_method # => throws :done
|
333
|
+
# object.expected_method # => 2
|
334
|
+
# object.expected_method # => 3
|
335
|
+
def throws(tag, object = nil)
|
336
|
+
@return_values += ReturnValues.new(Thrower.new(tag, object))
|
337
|
+
self
|
338
|
+
end
|
339
|
+
|
313
340
|
# :call-seq: then() -> expectation
|
314
341
|
# then(state_machine.is(state)) -> expectation
|
315
342
|
#
|