Add tests and assertions in-line in examples
Quick Start
Set up your package to use testex using
testex::use_testex()
and then start adding tests!
#' Hello, World! #' #' @examples #' hello("World") #' @test "Hello, World!" #' #' hello("darkness my old friend") #' @test grepl("darkness", .) #' #' @export hello <- function(who) { paste0("Hello, ", who, "!") }
If you were already using testthat, you'll immediately see a new test
context for testing your examples. And if you aren't using testthat, then
you'll find that your tests are being run with your examples when you run
R CMD check
roxygen2 tags
@test
will check that the result of the last example is identical to your test. You
can use the example output in a function using a ..
#' @examples #' sum(1:10) #' @test 55 #' @test is.numeric(.)
@testthat
is similar, but has the added benefit of automatically inserting a . into
testthat::expect_* functions.
#' @examples #' sum(1:10) #' @testthat expect_equal(55) #' @testthat expect_vector(numeric())
Prior Art
roxytestA slightly different approach. Allows tests to be written in-line, but generates test files used directly by a testing framework.