| output-expectations {testthat} | R Documentation |
Use expect_output(), expect_message(), expect_warning(),
or expect_error() to check for specific outputs. Use
expect_silent() to assert that there should be no output of
any type. The file-basedexpect_output_file() compares the output
to the contents of a text file and optionally updates it.
expect_output(object, regexp = NULL, ..., info = NULL, label = NULL) expect_output_file(object, file, update = FALSE, ..., info = NULL, label = NULL) expect_error(object, regexp = 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 |
... |
Additional arguments passed on to |
info |
extra information to be included in the message (useful when writing tests in loops). |
label |
object label. When |
file |
Path to a "golden" text file that contains the desired output. |
update |
Should the "golden" text file be updated? Default: |
all |
For messages and warnings, do all need to the |
Other expectations: comparison-expectations,
equality-expectations,
expect_equal_to_reference,
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)