mock {crul} | R Documentation |
Mocking HTTP requests
Description
Works for both synchronous requests via HttpClient()
and async
requests via Async()
and AsyncVaried()
Usage
mock(on = TRUE)
Arguments
on |
(logical) turn mocking on with |
Details
webmockr
package required for mocking behavior
Examples
## Not run:
if (interactive()) {
library(webmockr)
library(crul)
URL <- "https://hb.opencpu.org"
# turn on mocking
crul::mock()
# stub a request
stub_request("get", file.path(URL, "get"))
# create an HTTP client
(x <- HttpClient$new(url = URL))
# make a request - matches stub - no real request made
x$get('get')
# allow net connect
webmockr::webmockr_allow_net_connect()
x$get('get', query = list(foo = "bar"))
webmockr::webmockr_disable_net_connect()
x$get('get', query = list(foo = "bar"))
# With Async
urls <- c(
file.path(URL, "get"),
file.path(URL, "anything"),
file.path(URL, "encoding/utf8")
)
for (u in urls) {
webmockr::stub_request("get", u) %>%
webmockr::to_return(body = list(mocked = TRUE))
}
async_con <- Async$new(urls = urls)
async_resp <- async_con$get()
lapply(async_resp, \(x) x$parse("UTF-8"))
}
## End(Not run)
[Package crul version 1.5.0 Index]