By default, with_mock_api will look for mocks relative to the current
working directory (or the test directory). If you want to look in other
places, you can call db_mock_paths to add directories to the search path.
Arguments
- new
either a character vector of path(s) to add, or
NULLto reset to the default.- last
a logical, should the new path given be added to the end of the list of paths? (default:
FALSE)- replace
logical, should the path replace the current mock paths (
TRUE) or should they be appended (to the beginning) of the current mock paths (default,FALSE)
Value
If new is omitted, the function returns the current search paths, a
character vector. If new is provided, the updated value will be returned
invisibly.
Details
It works like base::.libPaths(): any directories you specify will be added
to the list and searched first. The default directory will be searched last.
Only unique values are kept: if you provide a path that is already found in
db_mock_paths, the result effectively moves that path to the first
position.
When you are capturing fixtures (e.g. with start_db_capturing), the first
path is used as the path to save the fixtures in. For this reason, you may
want to set the last argument to TRUE if you want to read from a
directory but don't want to write to it.
For finer-grained control, or to completely override the defaults or any
additions made by calls to db_mock_paths(...), you can set the option
"dittodb.mock.paths". If the option "dittodb.mock.paths" is set it will be
used instead of any paths set with db_mock_paths(...) or even inside of
with_mock_path()
This function is similar to .mockPaths() from
httptest
The function .db_mock_paths is the same as db_mock_paths although it is
deprecated and should not be used.
Examples
# reset mock paths to default
db_mock_paths(NULL)
identical(db_mock_paths(), c("tests/testthat/", "."))
#> [1] TRUE
db_mock_paths("/var/somewhere/else")
identical(db_mock_paths(), c("/var/somewhere/else", "tests/testthat/", "."))
#> [1] TRUE
db_mock_paths(NULL)
identical(db_mock_paths(), c("tests/testthat/", "."))
#> [1] TRUE
db_mock_paths("/var/somewhere/else", last = TRUE)
identical(db_mock_paths(), c("tests/testthat/", ".", "/var/somewhere/else"))
#> [1] TRUE