The first argument to every
expect_ function can use unquoting to
construct better labels. This makes it easy to create informative labels
expectations are used inside a function or a for loop.
up the details, returning the expression and label.
quasi_label(quo, label = NULL)
A quosure created by
An optional label to override the default. This is
only provided for internal usage. Modern expectations should not
A list containing two elements:
The evaluate value of
The quasiquoted label generated from
f <- function(i) if (i > 3) i * 9 else i * 10 i <- 10 # This short 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))#> Failed expectation: #> f(i) not equal to i * 10. #> 1/1 mismatches #>  90 - 100 == -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)))#> Failed expectation: #> f(10) not equal to 100. #> 1/1 mismatches #>  90 - 100 == -10