Как сделать тест неудачным с пакетом testthat?
У меня есть тест, для которого, если предварительные условия не выполнены (например, отсутствует файл или что-то), я хотел бы, чтобы он не прошел.
Просто для пояснения, вот пример, который я хотел бы сделать:
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 ...)
})
Теперь мой вопрос: есть ли fail()
-подобное ожидание в пакете testthat или я должен написать expect_true(FALSE)
все время?
2 ответа
Решение
Там нет 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())
Отказ не вариант...
Попробуйте использовать stop
:
test_that("testingsomething", {
if(file.exists("foo.txt")){
stop("foo.txt already exists")
}
foo = writeFreshVersion("foo.txt")
expect_true(file.exists("foo.txt"))
}
)