Does code return an object inheriting from the expected base type, S3 class, or S4 class?Source:
See https://adv-r.hadley.nz/oo.html for an overview of R's OO systems, and the vocabulary used here.
expect_type(x, type)checks that
expect_s3_class(x, class)checks that
xis an S3 object that
expect_s3_class(x, NA)checks that
xisn't an S3 object.
expect_s4_class(x, class)checks that
xis an S4 object that
expect_s4_class(x, NA)checks that
xisn't an S4 object.
expect_vector() for testing properties of objects created by vctrs.
expect_type(object, type) expect_s3_class(object, class, exact = FALSE) expect_s4_class(object, class)
Object to test.
Supports limited unquoting to make it easier to generate readable failures within a function or for loop. See quasi_label for more details.
String giving base type (as returned by
Either a character vector of class names, or for
NAto assert that
objectisn't an S3 or S4 object.
FALSE, the default, checks that
TRUE, checks that object has a class that's identical to
x <- data.frame(x = 1:10, y = "x", stringsAsFactors = TRUE) # A data frame is an S3 object with class data.frame expect_s3_class(x, "data.frame") show_failure(expect_s4_class(x, "data.frame")) #> Failed expectation: #> `x` is not an S4 object # A data frame is built from a list: expect_type(x, "list") # An integer vector is an atomic vector of type "integer" expect_type(x$x, "integer") # It is not an S3 object show_failure(expect_s3_class(x$x, "integer")) #> Failed expectation: #> x$x is not an S3 object # Above, we requested data.frame() converts strings to factors: show_failure(expect_type(x$y, "character")) #> Failed expectation: #> x$y has type 'integer', not 'character'. expect_s3_class(x$y, "factor") expect_type(x$y, "integer")