R Format#
Ottr tests are constructed by creating a JSON-like object (a list) that has a list of instances
of the R6 class ottr::TestCase. The body of each test case is a block of code that should raise
an error if the test fails, and no error if it passes. The list of test cases should be declared in
a global test variable. The structure of the test file looks something like:
test = list(
name = "q1",
cases = list(
ottr::TestCase$new(
name = "q1a",
code = {
testthat::expect_true(ans.1 > 1)
testthat::expect_true(ans.1 < 2)
}
),
ottr::TestCase$new(
name = "q1b",
hidden = TRUE,
code = {
tol = 1e-5
actual_answer = 1.27324
testthat::expect_true(ans.1 > actual_answer - tol)
testthat::expect_true(ans.1 < actual_answer + tol)
}
)
)
)
Note that the example above uses the expect_* functions exported by testthat to assert
conditions that raise errors. The constructor for ottr::TestCase accepts the following
arguments:
name: the name of the test casepoints: the point value of the test casehidden: whether this is a hidden testcode: the body of the test