有没有办法为 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/