我有一个测试,如果不满足先决条件(例如,丢失文件或其他东西),我想让它失败。
只是为了澄清,这是我想做的一个例子:
test_that("...", {
if ( ... precondition to execute the test is not met... ) {
expect_true(FALSE) # Make it fail without going further
}
expect_that( ... real test here ...)
})
现在我的问题是: testthat 包中是否有任何fail()
- 就像期望一样,或者我必须一直写expect_true(FALSE)
?
答案 0 :(得分:3)
目前fail
中没有testthat
功能。我想你想要像
fail <- function(message = "Failure has been forced.", info = NULL, label = NULL)
{
expect_that(
NULL,
function(message)
{
expectation(FALSE, message)
},
info,
label
)
}
用法是,例如,
test_that("!!!", fail())
答案 1 :(得分:0)
失败不是一种选择......
尝试使用stop
:
test_that("testingsomething", {
if(file.exists("foo.txt")){
stop("foo.txt already exists")
}
foo = writeFreshVersion("foo.txt")
expect_true(file.exists("foo.txt"))
}
)