我正在开发一个闪亮的应用程序并使用 testthat 进行单元测试。我有一个包含测试的文件夹,我用
testthat::test_dir
运行。但是,我不知道如何使用模拟功能,因为我收到的错误表明我不在包中。
例子:
具有功能的源文件:
base_fn <- function(){
0
}
mocking_result <- function(){
1
}
我的测试:
test_that("Mocking a function works",{
local_mocked_bindings(base_fn = mocking_result)
expect_equal(base_fn(), 1)
})
我不断收到错误
Error in
dev_package(): No packages loaded with pkgload
。我尝试将 .package 参数设置为 NA、NULL、“base”,但没有帮助。
如果我不想将所有内容格式化为包,我可以使用 local_mocked_bindings 吗?我发现我可以使用 with_mock
来实现此目的,但据我所知,该功能已被取代,因此我不希望它将来变得无法使用。
由于我面临同样的问题,我直接在
testthat
软件包存储库上提出问题,答案是
抱歉,这些功能只能在包内使用。我认为解决你的问题的最简单方法是将你的 R 脚本放在
目录中,将测试放在R/
目录中,并添加一个最小的tests/testthat/
😄DESCRIPTION