如果我运行以下操作,则会出现行为。什么都没有归还
expect_error(expect_true(FALSE))
当我运行相同的代码,但包含在test_that
test_that("expect_error should not fail",{
expect_error(expect_true(FALSE))
})
Error: Test failed: 'expect_error should not fail'
* Not expected: FALSE isn't true.
* Not expected: expect_true(FALSE) code did not generate an error.
输出很奇怪,意味着expect_true(FALSE)
在test_that
内展开时不会产生错误。
如何将expect_error
放入test_that
?
更新
我使用testthat
进行代码断言。有assertthat
包。
答案 0 :(得分:1)
你误解了expect_error
的意图。它应该捕获用户代码中的错误,而不是测试中的错误。
expect_that
会产生错误,但在<{em> test_that
有机会对其进
请勿在{{1}}内包含expect_error
次来电。直接使用expect_*
:
expect_error
行为的不一致来自expect_error
将捕获test_that('expect_error catches error conditions', {
expect_error(stop('foo'))
})
生成的错误而不是让它们正常传播的事实。