testthat (version 2.1.1)

inheritance-expectations: Expectation: does the object inherit from a S3 or S4 class, or is it a base type?

Description

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 typeof(x) is type.

  • expect_s3_class(x, class) checks that x is an S3 object that inherits() from class

  • expect_s4_class(x, class) checks that x is an S4 object that is() class.

Usage

expect_type(object, type)

expect_s3_class(object, class)

expect_s4_class(object, class)

Arguments

object

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.

type

String giving base type (as returned by typeof()).

class

character vector of class names

See Also

Other expectations: comparison-expectations, equality-expectations, expect_length, expect_match, expect_named, expect_null, logical-expectations, output-expectations

Examples

Run this code
# NOT RUN {
x <- data.frame(x = 1:10, y = "x")
# 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"))
# 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"))

# By default data.frame() converts characters to factors:
show_failure(expect_type(x$y, "character"))
expect_s3_class(x$y, "factor")
expect_type(x$y, "integer")
# }

Run the code above in your browser using DataCamp Workspace