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)