# use a new temp directory so we don't have to cleanup later
with_mock_path(path = "new_mock_path", {
# we can use an entirely different mock path (and with a named argument)
with_mock_db({
con <- dbConnect(RSQLite::SQLite(), dbname = "new_db")
test_that("The connection has a new path", {
expect_identical(con@path, "new_db")
})
test_that("We can use mocks from the new path", {
expect_identical(
dbGetQuery(con, "SELECT * FROM airlines LIMIT 1"),
data.frame(
carrier = c("9E"),
name = c("Endeavor Air Inc."),
stringsAsFactors = FALSE
)
)
})
dbDisconnect(con)
})
})
withr::with_options(
c(dittodb.mock.paths = "new_one"),
{
test_that("dittodb.mock.paths is used", {
expect_identical(db_mock_paths(), "new_one")
})
}
)
with_mock_path(
c("new_one"),
replace = TRUE,
{
test_that("the one mockpath is used", {
expect_identical(db_mock_paths(), "new_one")
})
test_that("and we can unset", {
db_mock_paths(NULL)
expect_identical(db_mock_paths(), c("tests/testthat/", "."))
})
test_that("we can add to the beginning", {
db_mock_paths("beginning")
expect_identical(db_mock_paths(), c("beginning", "tests/testthat/", "."))
# cleanup
db_mock_paths(NULL)
})
test_that("and we can add to the end", {
db_mock_paths("end", last = TRUE)
expect_identical(db_mock_paths(), c("tests/testthat/", ".", "end"))
# cleanup
db_mock_paths(NULL)
})
test_that("and we can replace", {
db_mock_paths("replace", replace = TRUE)
expect_identical(db_mock_paths(), c("replace"))
# cleanup
db_mock_paths(NULL)
})
test_that("with_mock_path can replace", {
with_mock_path("baz", replace = TRUE, {
expect_identical(db_mock_paths(), "baz")
})
})
test_that(".db_mock_paths is deprecated", {
expect_warning(
expect_identical(.db_mock_paths(), c("tests/testthat/", ".")),
"'.db_mock_paths' is deprecated.\nUse 'db_mock_paths' instead.",
fixed = TRUE
)
})
}
)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.