Mocking allows you to selectively and temporarily replace the response you would typically receive from a request with your own code. It's primarily used for testing.
Arguments
- mock
A function, a list, or
NULL
.NULL
disables mocking and returns httr2 to regular operation.A list of responses will be returned in sequence. After all responses have been used up, will return 503 server errors.
For maximum flexibility, you can supply a function that that takes a single argument,
req
, and returns eitherNULL
(if it doesn't want to handle the request) or a response (if it does).
- code
Code to execute in the temporary environment.
- env
Environment to use for scoping changes.
Examples
# This function should perform a response against google.com:
google <- function() {
request("http://google.com") |>
req_perform()
}
# But I can use a mock to instead return my own made up response:
my_mock <- function(req) {
response(status_code = 403)
}
try(with_mock(my_mock, google()))
#> Warning: `with_mock()` was deprecated in httr2 1.0.0.
#> ℹ Please use `with_mocked_responses()` instead.
#> Error in req_perform(request("http://google.com")) : HTTP 403 Forbidden.