| 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