inheritance-expectations: Does code return an object inheriting from the expected base...

Description Usage Arguments See Also Examples

Description

See https://adv-r.hadley.nz/oo.html for an overview of R's OO systems, and the vocabulary used here.

See expect_vector() for testing properties of objects created by vctrs.

Usage

1
2
3
4
5
expect_type(object, type)

expect_s3_class(object, class, exact = FALSE)

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

Either a character vector of class names, or for expect_s3_class() and expect_s4_class(), an NA to assert that object isn't an S3 or S4 object.

exact

If FALSE, the default, checks that object inherits from class. If TRUE, checks that object has a class that's identical to class.

See Also

Other expectations: comparison-expectations, equality-expectations, expect_error(), expect_length(), expect_match(), expect_named(), expect_null(), expect_output(), expect_reference(), expect_silent(), logical-expectations

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
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"))
# 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"))

# Above, we requested data.frame() converts strings to factors:
show_failure(expect_type(x$y, "character"))
expect_s3_class(x$y, "factor")
expect_type(x$y, "integer")

r-lib/testthat documentation built on Sept. 25, 2021, 3:02 p.m.