我正在为一个函数编写测试,在某些条件下会产生警告.我想确保在其他条件下它不会产生警告.我没有看到一个明显的方法来轻松测试testthat.我想我可以这样做:
my.result <- 25
my.func <- function() my.result
expect_equal(
withCallingHandlers(
my.func(), warning=function() stop("A Warning!")
),
my.result
)
Run Code Online (Sandbox Code Playgroud)
或使用options(warn=2),但我希望有类似的东西:
expect_no_warnings(my.func())
Run Code Online (Sandbox Code Playgroud)
我错过了一些明显的东西吗
alk*_*989 18
在更新版本的'testthat'(从0.11.0开始),您可以:
expect_warning(my.func(), regexp = NA)
Run Code Online (Sandbox Code Playgroud)
从文档中 expect_error
regexp:正则表达式来测试.如果省略,只断言代码产生一些输出,消息,警告或错误.或者,您可以指定NA以指示不应存在输出,消息,警告或错误.
因此,您可以通过相同的方式测试没有消息,错误和输出.
Kar*_*ner 11
在最新版本的testthat中,您可以简单地执行:
expect_that(my.func(), not(gives_warning()))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1457 次 |
| 最近记录: |