Become an expert in R — Interactive courses, Cheat Sheets, certificates and more!
Get Started for Free

quasi_label

Quasi-labelling


Description

The first argument to every expect_ function can use unquoting to construct better labels. This makes it easy to create informative labels when expectations are used inside a function or a for loop. quasi_label() wraps up the details, returning the expression and label.

Usage

quasi_label(quo, label = NULL, arg = "quo")

Arguments

quo

A quosure created by rlang::enquo().

label

An optional label to override the default. This is only provided for internal usage. Modern expectations should not include a label parameter.

arg

Argument name shown in error message if quo is missing.

Value

A list containing two elements:

val

The evaluate value of quo

lab

The quasiquoted label generated from quo

Limitations

Because all expect_ function use unquoting to generate more informative labels, you can not use unquoting for other purposes. Instead, you'll need to perform all other unquoting outside of the expectation and only test the results.

Examples

f <- function(i) if (i > 3) i * 9 else i * 10
i <- 10

# This sort of expression commonly occurs inside a for loop or function
# And the failure isn't helpful because you can't see the value of i
# that caused the problem:
show_failure(expect_equal(f(i), i * 10))

# To overcome this issue, testthat allows you to unquote expressions using
# !!. This causes the failure message to show the value rather than the
# variable name
show_failure(expect_equal(f(!!i), !!(i * 10)))

testthat

Unit Testing for R

v3.0.2
MIT + file LICENSE
Authors
Hadley Wickham [aut, cre], RStudio [cph, fnd], R Core team [ctb] (Implementation of utils::recover())
Initial release

We don't support your browser anymore

Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.