Module: Caricature::Interception

Defined in:
lib/caricature/isolator.rb

Overview

Groups the methods for interception together this is a mix-in for the created isolations for classes

Defined Under Namespace

Modules: ClassMethods

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.included(base) ⇒ Object

mixes in the class methods of this module when it gets included in a class.



65
66
67
# File 'lib/caricature/isolator.rb', line 65

def self.included(base)
  base.extend ClassMethods
end

Instance Method Details

#did_class_receive?(method_name, &block) ⇒ Boolean

Verifies whether the specified class method has been called You can specify constraints in the block

The most complex configuration you can make currently is one that is constrained by arguments. This is likely to be extended in the future to allow for more complex verifications.

Example:

an_isolation.did_class_receive?(:a_method) do |method_call|
  method_call.with(3, "a")
end.should.be.successful

is equivalent to:

an_isolation.did_class_receive?(:a_method).with(3, "a").should.be.successful

You will probably be using this method only when you’re interested in whether a method has been called during the course of the test you’re running.

Returns:

  • (Boolean)


153
154
155
# File 'lib/caricature/isolator.rb', line 153

def did_class_receive?(method_name, &block)
  self.class.did_receive?(method_name, &block)
end

#did_receive?(method_name, &block) ⇒ Boolean

Verifies whether the specified method has been called You can specify constraints in the block

The most complex configuration you can make currently is one that is constrained by arguments. This is most likely to be extended in the future to allow for more complex verifications.

Example:

an_isolation.did_receive?(:a_method) do |method_call|
  method_call.with(3, "a")
end.should.be.successful

is equivalent to:

an_isolation.did_receive?(:a_method).with(3, "a").should.be.successful

You will probably be using this method only when you’re interested in whether a method has been called during the course of the test you’re running.

Returns:

  • (Boolean)


131
132
133
# File 'lib/caricature/isolator.rb', line 131

def did_receive?(method_name, &block)
  isolation_context.verify method_name, &block
end

#isolation_contextObject

the context of this isolation instance. this context takes care of responding to method calls etc.



71
72
73
# File 'lib/caricature/isolator.rb', line 71

def isolation_context
  self.class.isolation_context
end

#when_class_receives(method_name, &block) ⇒ Object

Replaces the call to the class of the proxy with the one you create with this method. You can specify more specific criteria in the block to configure the expectation.

Example:

an_isolation.when_class_receives(:a_method) do |method_call|
  method_call.with(3, "a").return(5)
end

is equivalent to:

an_isolation.when_class_receives(:a_method).with(3, "a").return(5)

You will most likely use this method when you want your stubs to return something else than nil when they get called during the run of the test they are defined in.



109
110
111
# File 'lib/caricature/isolator.rb', line 109

def when_class_receives(method_name, &block)
  self.class.when_receiving method_name, &block
end

#when_receiving(method_name, &block) ⇒ Object

Replaces the call to the proxy with the one you create with this method. You can specify more specific criteria in the block to configure the expectation.

Example:

an_isolation.when_receiving(:a_method) do |method_call|
  method_call.with(3, "a").return(5)
end

is equivalent to:

an_isolation.when_receiving(:a_method).with(3, "a").return(5)

You will most likely use this method when you want your stubs to return something else than nil when they get called during the run of the test they are defined in.



90
91
92
# File 'lib/caricature/isolator.rb', line 90

def when_receiving(method_name, &block)
  isolation_context.create_override method_name, &block
end

#with_subject(*args, &b) ⇒ Object

Initializes the underlying subject It expects the constructor parameters if they are needed.



159
160
161
162
163
# File 'lib/caricature/isolator.rb', line 159

def with_subject(*args, &b)
  isolation_context.instance = self.class.superclass.new *args 
  b.call self if b
  self
end