r - test_that 的多重期望

标签 r unit-testing testthat

有没有办法为 expect_that 单元测试设置多个 for expectations?例如,对于给定的 expect_that() 语句,我希望函数 f() 发出警告并返回数字 10.

最佳答案

test_that("f works as expected", {
expect_warning(f())
expect_equal(f(), 10)
}
)

如果我正确理解您的上下文,这应该可行。如果未满足其中一个或两个预期,测试将失败并报告。

要只运行一次函数,您可以尝试将函数包装在 test_that 中:

    test_that("f works as expected", {
a <- tryCatch(f(), warning=function(w) return(list(f(), w)))
expect_equal(a[[2]], "warning text")
expect_equal(a[[1]], 10)
rm(a)
}
)

我还没有对此进行测试,所以我不确定它是否适用于您的特定情况,但我过去对 test_that 使用过类似的方法。

关于r - test_that 的多重期望,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23396709/

相关文章:

r - Java Script 警报 R 遇到 fatal error 。此 session 已终止

c# - 单元测试数据库方法

r - 合并两个数据帧

R:如何在字符串中间添加一个零

ios - 使用 Swift 在 Xcode 中进行异步 UI 测试

java - 当您同时具有虚拟和真实实现的接口(interface)时,单元测试的最佳方法是什么?

r - Travis-CI 中的测试错误超过 13 最后一行

r - 当条件不满足时跳过所有测试

r - 在二进制 R 包中包含测试

r - 从 Rstudio 保存为 pdf