Mocking HTTP requests
Works for both synchronous requests via HttpClient()
and async requests via Async()
and AsyncVaried()
mock(on = TRUE)
on
: (logical) turn mocking on with TRUE
or turn off with FALSE
. By default is FALSE
webmockr
package required for mocking behavior
## 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)
Useful links