expect_verb {httptest2} | R Documentation |
Expectations for mocked HTTP requests
Description
The mock contexts in httptest2
can raise errors or messages when requests
are made, and those (error) messages have three
elements, separated by space: (1) the request
method (e.g. "GET"); (2) the request URL; and
(3) the request body, if present.
These verb-expectation functions look for this message shape. expect_PUT
,
for instance, looks for a request message that starts with "PUT".
Usage
expect_GET(object, url = "", ...)
expect_POST(object, url = "", ...)
expect_PATCH(object, url = "", ...)
expect_PUT(object, url = "", ...)
expect_DELETE(object, url = "", ...)
expect_no_request(object, ...)
Arguments
object |
Code to execute that may cause an HTTP request |
url |
character: the URL you expect a request to be made to. Default is an empty string, meaning that you can just assert that a request is made with a certain method without asserting anything further. |
... |
character segments of a request payload you expect to be included
in the request body, to be joined together by
|
Value
A testthat
'expectation'.
Examples
library(httr2)
without_internet({
expect_GET(
request("http://httpbin.org/get") %>% req_perform(),
"http://httpbin.org/get"
)
expect_GET(
request("http://httpbin.org/get") %>% req_perform(),
"http://httpbin.org/[a-z]+",
fixed = FALSE # For regular expression matching
)
expect_PUT(
request("http://httpbin.org/put") %>%
req_method("PUT") %>%
req_body_json(list(a = 1)) %>%
req_perform(),
"http://httpbin.org/put",
'{"a":1}'
)
# Don't need to assert the request body, or even the URL
expect_PUT(
request("http://httpbin.org/put") %>%
req_method("PUT") %>%
req_body_json(list(a = 1)) %>%
req_perform()
)
expect_no_request(rnorm(5))
})