Class | Typhoeus::Expectation |
In: |
lib/typhoeus/expectation.rb
|
Parent: | Object |
This class represents an expectation. It is part of the stubbing mechanism. An expectation contains a url and options, like a request. They are compared to the request url and options in order to evaluate whether they match. If that‘s the case, the attached responses are returned one by one.
@example Stub a request and get specified response.
expected = Typhoeus::Response.new Typhoeus.stub("www.example.com").and_return(expected) actual = Typhoeus.get("www.example.com") expected == actual #=> true
@example Stub a request and get a lazily-constructed response containing data from actual widgets that exist in the system when the stubbed request is made.
Typhoeus.stub("www.example.com/widgets") do actual_widgets = Widget.all Typhoeus::Response.new( :body => actual_widgets.inject([]) do |ids, widget| ids << widget.id end.join(",") ) end
@example Stub a request and get a lazily-constructed response in the format requested.
Typhoeus.stub("www.example.com") do |request| accept = (request.options[:headers]||{})['Accept'] || "application/json" format = accept.split(",").first body_obj = { 'things' => [ { 'id' => 'foo' } ] } Typhoeus::Response.new( :headers => { 'Content-Type' => format }, :body => SERIALIZERS[format].serialize(body_obj) ) end
base_url | [R] | @api private |
from | [R] | @api private |
options | [R] | @api private |
Returns all expectations.
@example Return expectations.
Typhoeus::Expectation.all
@return [ Array<Typhoeus::Expectation> ] The expectations.
Clears expectations. This is handy while testing, and you want to make sure that you don‘t get canned responses.
@example Clear expectations.
Typhoeus::Expectation.clear
Creates an expectation.
@example Create expectation.
Typhoeus::Expectation.new(base_url)
@return [ Expectation ] The created expectation.
@api private
Returns stubbed response matching the provided request.
@example Find response
Typhoeus::Expectation.response_for(request)
@return [ Typhoeus::Response ] The stubbed response from a
matching expectation, or nil if no matching expectation is found.
@api private
Specify what should be returned, when this expectation is hit.
@example Add response.
expectation.and_return(response)
@return [ void ]
Checks whether this expectation matches the provided request.
@example Check if request matches.
expectation.matches? request
@param [ Request ] request The request to check.
@return [ Boolean ] True when matches, else false.
@api private
Return canned responses.
@example Return responses.
expectation.responses
@return [ Array<Typhoeus::Response> ] The responses.
@api private
Set from value to mark an expectaion. Useful for other libraries, e.g. WebMock.
@example Mark expectation.
expectation.from(:webmock)
@param [ String ] value Value to set.
@return [ Expectation ] Returns self.
@api private