Class: Mocha::Expectation
- Inherits:
-
Object
- Object
- Mocha::Expectation
- Defined in:
- lib/mocha/expectation.rb
Overview
Methods on expectations returned from Mock#expects, Mock#stubs, ObjectMethods#expects and ObjectMethods#stubs.
Instance Method Summary collapse
-
#at_least(minimum_number_of_times) ⇒ Expectation
Modifies expectation so that the expected method must be called at least a
minimum_number_of_times
. -
#at_least_once ⇒ Expectation
Modifies expectation so that the expected method must be called at least once.
-
#at_most(maximum_number_of_times) ⇒ Expectation
Modifies expectation so that the expected method must be called at most a
maximum_number_of_times
. -
#at_most_once ⇒ Expectation
Modifies expectation so that the expected method must be called at most once.
-
#in_sequence(*sequences) ⇒ Expectation
Constrains the expectation so that it must be invoked at the current point in the
sequence
. -
#multiple_yields(*parameter_groups) ⇒ Expectation
Modifies expectation so that when the expected method is called, it yields multiple times per invocation with the specified
parameter_groups
. -
#never ⇒ Expectation
Modifies expectation so that the expected method must never be called.
-
#once ⇒ Expectation
Modifies expectation so that the expected method must be called exactly once.
-
#raises(exception = RuntimeError, message = nil) ⇒ Expectation
Modifies expectation so that when the expected method is called, it raises the specified
exception
with the specifiedmessage
i.e. -
#returns(*values) ⇒ Expectation
Modifies expectation so that when the expected method is called, it returns the specified
value
. -
#then(*parameters) ⇒ Expectation
The same expectation, thereby allowing invocations of other Expectation methods to be chained.
-
#throws(tag, object = nil) ⇒ Expectation
Modifies expectation so that when the expected method is called, it throws the specified
tag
with the specific return valueobject
i.e. -
#times(range) ⇒ Expectation
Modifies expectation so that the number of calls to the expected method must be within a specific
range
. -
#twice ⇒ Expectation
Modifies expectation so that the expected method must be called exactly twice.
-
#when(state_predicate) ⇒ Expectation
Constrains the expectation to occur only when the
state_machine
is in the state specified bystate_name
. -
#with(*expected_parameters) {|actual_parameters| ... } ⇒ Expectation
Modifies expectation so that the expected method must be called with
expected_parameters
. -
#yields(*parameters) ⇒ Expectation
Modifies expectation so that when the expected method is called, it yields with the specified
parameters
.
Instance Method Details
#at_least(minimum_number_of_times) ⇒ Expectation
Modifies expectation so that the expected method must be called at least a
minimum_number_of_times
.
130 131 132 133 |
# File 'lib/mocha/expectation.rb', line 130 def at_least(minimum_number_of_times) @cardinality = Cardinality.at_least(minimum_number_of_times) self end |
#at_least_once ⇒ Expectation
Modifies expectation so that the expected method must be called at least once.
148 149 150 151 |
# File 'lib/mocha/expectation.rb', line 148 def at_least_once at_least(1) self end |
#at_most(maximum_number_of_times) ⇒ Expectation
Modifies expectation so that the expected method must be called at most a
maximum_number_of_times
.
167 168 169 170 |
# File 'lib/mocha/expectation.rb', line 167 def at_most(maximum_number_of_times) @cardinality = Cardinality.at_most(maximum_number_of_times) self end |
#at_most_once ⇒ Expectation
Modifies expectation so that the expected method must be called at most once.
185 186 187 188 |
# File 'lib/mocha/expectation.rb', line 185 def at_most_once at_most(1) self end |
#in_sequence(*sequences) ⇒ Expectation
Constrains the expectation so that it must be invoked at the current point
in the sequence
.
To expect a sequence of invocations, write the expectations in order and add the in_sequence(sequence) clause to each one.
Expectations in a sequence
can have any invocation count.
If an expectation in a sequence is stubbed, rather than expected, it can be
skipped in the sequence
.
An expected method can appear in multiple sequences.
492 493 494 495 |
# File 'lib/mocha/expectation.rb', line 492 def in_sequence(*sequences) sequences.each { |sequence| add_in_sequence_ordering_constraint(sequence) } self end |
#multiple_yields(*parameter_groups) ⇒ Expectation
Modifies expectation so that when the expected method is called, it yields
multiple times per invocation with the specified
parameter_groups
.
277 278 279 280 |
# File 'lib/mocha/expectation.rb', line 277 def multiple_yields(*parameter_groups) @yield_parameters.multiple_add(*parameter_groups) self end |
#never ⇒ Expectation
Modifies expectation so that the expected method must never be called.
110 111 112 113 |
# File 'lib/mocha/expectation.rb', line 110 def never @cardinality = Cardinality.exactly(0) self end |
#once ⇒ Expectation
Modifies expectation so that the expected method must be called exactly once.
Note that this is the default behaviour for an expectation, but you may wish to use it for clarity/emphasis.
93 94 95 96 |
# File 'lib/mocha/expectation.rb', line 93 def once @cardinality = Cardinality.exactly(1) self end |
#raises ⇒ Expectation #raises(exception) ⇒ Expectation #raises(exception, message) ⇒ Expectation
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).
364 365 366 367 |
# File 'lib/mocha/expectation.rb', line 364 def raises(exception = RuntimeError, = nil) @return_values += ReturnValues.new(ExceptionRaiser.new(exception, )) self end |
#returns(value) ⇒ Expectation #returns(*values) ⇒ Expectation
Modifies expectation so that when the expected method is called, it returns
the specified value
.
324 325 326 327 |
# File 'lib/mocha/expectation.rb', line 324 def returns(*values) @return_values += ReturnValues.build(*values) self end |
#then ⇒ Expectation #then(state_machine.is(state_name)) ⇒ Expectation
Returns the same expectation, thereby allowing invocations of other Mocha::Expectation methods to be chained.
438 439 440 441 442 443 444 |
# File 'lib/mocha/expectation.rb', line 438 def then(*parameters) if parameters.length == 1 state = parameters.first add_side_effect(ChangeStateSideEffect.new(state)) end self end |
#throw(tag) ⇒ Expectation #throw(tag, object) ⇒ Expectation
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).
403 404 405 406 |
# File 'lib/mocha/expectation.rb', line 403 def throws(tag, object = nil) @return_values += ReturnValues.new(Thrower.new(tag, object)) self end |
#times(range) ⇒ Expectation
Modifies expectation so that the number of calls to the expected method
must be within a specific range
.
42 43 44 45 |
# File 'lib/mocha/expectation.rb', line 42 def times(range) @cardinality = Cardinality.times(range) self end |
#twice ⇒ Expectation
Modifies expectation so that the expected method must be called exactly twice.
68 69 70 71 |
# File 'lib/mocha/expectation.rb', line 68 def twice @cardinality = Cardinality.exactly(2) self end |
#when(state_predicate) ⇒ Expectation
Constrains the expectation to occur only when the
state_machine
is in the state specified by
state_name
.
465 466 467 468 |
# File 'lib/mocha/expectation.rb', line 465 def when(state_predicate) add_ordering_constraint(InStateOrderingConstraint.new(state_predicate)) self end |
#with(*expected_parameters) {|actual_parameters| ... } ⇒ Expectation
Modifies expectation so that the expected method must be called with
expected_parameters
.
May be used with parameter matchers in ParameterMatchers.
221 222 223 224 |
# File 'lib/mocha/expectation.rb', line 221 def with(*expected_parameters, &matching_block) @parameters_matcher = ParametersMatcher.new(expected_parameters, &matching_block) self end |
#yields(*parameters) ⇒ Expectation
Modifies expectation so that when the expected method is called, it yields
with the specified parameters
.
May be called multiple times on the same expectation for consecutive invocations.
250 251 252 253 |
# File 'lib/mocha/expectation.rb', line 250 def yields(*parameters) @yield_parameters.add(*parameters) self end |