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.

with_mock(mock, code)

local_mock(mock, env = caller_env())

Arguments

mock

A single argument function called with a request object. It should return either NULL (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.

Value

with_mock() returns the result of evaluating code.

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)
}
with_mock(my_mock, google())
#> <httr2_response>
#> GET https://example.com
#> Status: 403 Forbidden
#> Body: Empty