如何使用testthat包进行测试失败?

时间:2012-09-20 06:39:00

标签: r unit-testing 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 ...)
})

现在我的问题是: testthat 包中是否有任何fail() - 就像期望一样,或者我必须一直写expect_true(FALSE)

2 个答案:

答案 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"))
}
)