output-expectations {testthat} | R Documentation |
Use expect_output()
, expect_message()
and expect_warning()
to
match specified outputs. Use expect_error()
or expect_condition()
to
match individual errors or conditions. Use expect_silent()
to assert that
there should be no output of any type.
expect_output(object, regexp = NULL, ..., info = NULL, label = NULL) expect_error(object, regexp = NULL, class = NULL, ..., info = NULL, label = NULL) expect_condition(object, regexp = NULL, class = NULL, ..., info = NULL, label = NULL) expect_message(object, regexp = NULL, ..., all = FALSE, info = NULL, label = NULL) expect_warning(object, regexp = NULL, ..., all = FALSE, info = NULL, label = NULL) expect_silent(object)
object |
object to test |
regexp |
regular expression to test against. If If |
... |
Arguments passed on to
|
info |
extra information to be included in the message (useful when writing tests in loops). |
label |
object label. When |
class |
Instead of supplying a regular expression, you can also supply a class name. This is useful for "classed" conditions. |
all |
For messages and warnings, do all need to match the |
Note that warnings are captured by a custom signal handler: this means
that options(warn)
has no effect.
The first argument, invisibly. If expect_error()
captures an
error, that is returned instead of the value.
Other expectations: comparison-expectations
,
equality-expectations
,
expect_length
, expect_match
,
expect_named
,
inheritance-expectations
,
logical-expectations
# Output -------------------------------------------------------------------- str(mtcars) expect_output(str(mtcars), "32 obs") expect_output(str(mtcars), "11 variables") # You can use the arguments of grepl to control the matching expect_output(str(mtcars), "11 VARIABLES", ignore.case = TRUE) expect_output(str(mtcars), "$ mpg", fixed = TRUE) # Messages ------------------------------------------------------------------ f <- function(x) { if (x < 0) message("*x* is already negative") -x } expect_message(f(-1)) expect_message(f(-1), "already negative") expect_message(f(1), NA) # You can use the arguments of grepl to control the matching expect_message(f(-1), "*x*", fixed = TRUE) expect_message(f(-1), "NEGATIVE", ignore.case = TRUE) # Warnings -------------------------------------------------------------------- f <- function(x) { if (x < 0) warning("*x* is already negative") -x } expect_warning(f(-1)) expect_warning(f(-1), "already negative") expect_warning(f(1), NA) # You can use the arguments of grepl to control the matching expect_warning(f(-1), "*x*", fixed = TRUE) expect_warning(f(-1), "NEGATIVE", ignore.case = TRUE) # Errors -------------------------------------------------------------------- f <- function() stop("My error!") expect_error(f()) expect_error(f(), "My error!") # You can use the arguments of grepl to control the matching expect_error(f(), "my error!", ignore.case = TRUE) # Silent -------------------------------------------------------------------- expect_silent("123") f <- function() { message("Hi!") warning("Hey!!") print("OY!!!") } ## Not run: expect_silent(f()) ## End(Not run)