The goal of mockr is to provide a drop-in replacement for testthat::local_mock()
and testthat::with_mock()
which is deprecated in testthat 3.0.0. The functions mockr::local_mock()
and mockr::with_mock()
are modeled closely after the original implementation, but now only allow mocking functions in the package under test. In contrast to the original implementation, no fiddling with R’s internals is needed, and the implementation plays well with byte-compiled code. There are some caveats, though:
your.package::
or your.package:::
anymore.your.package:::
, your code and tests should run just fine without that.If you encounter other problems, please file an issue.
library(mockr) access_resource <- function() { message("Trying to access resource...") # For some reason we can't access the resource in our tests. stop("Can't access resource now.") } work_with_resource <- function() { resource <- access_resource() message("Fetched resource: ", resource) invisible(resource) } # Calling this function gives an error work_with_resource() #> Trying to access resource... #> Error in access_resource(): Can't access resource now. local({ # Here, we override the function that raises the error local_mock(access_resource = function() 42) # No error raised work_with_resource() }) #> Fetched resource: 42
Install from CRAN via
install.packages("mockr")
Please note that the mockr project is released with a Contributor Code of Conduct. By contributing to this project, you agree to abide by its terms.
Any scripts or data that you put into this service are public.
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.