matching-expectations {testthat}R Documentation

Expectation: does string/output/message/warning/error match a regular expression?

Description

Expectation: does string/output/message/warning/error match a regular expression?

Usage

expect_match(object, regexp, ..., all = TRUE, info = NULL, label = NULL)

expect_output(object, regexp, ..., info = NULL, label = NULL)

expect_error(object, regexp = NULL, ..., info = NULL, label = NULL)

expect_warning(object, regexp = NULL, ..., all = FALSE, info = NULL,
  label = NULL)

expect_message(object, regexp = NULL, ..., all = FALSE, info = NULL,
  label = NULL)

Arguments

object

object to test

regexp

regular expression to test against. If omitted, just asserts that code produces some output, messsage, warning or error. Alternatively, you can specify NA to indicate that there should be no output, messages, warnings or errors.

...

Additional arguments passed on to grepl, e.g. ignore.case or fixed.

all

should all elements of actual value match regexp (TRUE), or does only one need to match (FALSE)

info

extra information to be included in the message (useful when writing tests in loops).

label

object label. When NULL, computed from deparsed object.

See Also

Other expectations: equivalence, expect_equal, expect_equivalent, expect_identical; expect-compare, expect_gt, expect_gte, expect_less_than, expect_lt, expect_lte, expect_more_than; expect_equal_to_reference; expect_false, expect_true; expect_is; expect_named; expect_null; expect_silent; takes_less_than

Examples

expect_match("Testing is fun", "fun")
expect_match("Testing is fun", "f.n")

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

[Package testthat version 0.11.0 Index]