is_informative_error()
is a generic predicate that indicates
whether testthat users should explicitly test for an error
class. When it returns TRUE
(the default), and expect_error()
does not check for the class, a warning is issued during tests.
You can silence the warning by implementing is_informative_error()
.
The main use case for overriding this method is to introduce an
experimental error class when you need more experience while
developing an error hierarchy for your package. Override
is_informative_error()
to return FALSE
to avoid encouraging
users to depend on the experimental class in their tests.
Since testthat should be a Suggest
dependency, methods for
is_informative_error()
should typically be lazily registered,
e.g. with vctrs::s3_register()
.
is_informative_error(x, ...)
An error object.
These dots are for future extensions and must be empty.
A few classes are hard-coded as uninformative:
simpleError
rlang_error
unless a subclass is detected
Rcpp::eval_error
Rcpp::exception