Как сделать тест неудачным с пакетом 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"))
}
)
Другие вопросы по тегам