| 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)