问题描述
我有一个带有建议的依赖关系的软件包,该软件包启用了可选的行为。
按照最佳实践,我在“建议”中添加了此依赖项,并在使用前检查它是否与requireNamespace
一起安装。
在这种特殊情况下,建议的包装为data.tree
,并且可选的行为是进行漂亮的打印,而不是更无聊的打印。
myfun <- function(...) {
if (requireNamespace("data.tree",quietly = TRUE)) {
# do pretty print
} else {
# do boring print
}
}
我的问题是:如何使用testthat
测试此行为?我想测试if/else
的两个分支,但是由于确实安装了data.tree,所以我只运行第一个分支。
test_that("myfun does a pretty print with data.tree",{
myfun()
})
test_that("myfun does a boring print if data.tree is not installed",{
# Ideally I am looking for a bit of code like this:
with(simulate_missing("data.tree"),myfun())
})
有没有一种方法可以用testthat
模拟缺少的依赖关系,或更普遍的是可以测试myfun
的方法?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)