Description
Add Tests to Examples.
Description
Add tests in-line in examples. Provides standalone functions for facilitating easier test writing in Rd files. However, a more familiar interface is provided using 'roxygen2' tags. Tools are also provided for facilitating package configuration and use with 'testthat'.
README.md
testex
test examples
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
roxytest
A slightly different approach. Allows tests to be written in-line, but generates test files used directly by a testing framework.