tests/testthat/test-test-data.R

context ("test data")

test_that ("no matching test_name", {

    test_data <- data.frame (
        test_name = "other_test",
        fn_name = "fn1",
        parameter = "x",
        test = TRUE,
        stringsAsFactors = FALSE
    )
    obj <- list (test_name = "this_test", fn_name = "fn1", parameter = "x")

    res <- test_these_data (test_data, obj)
    expect_identical (length (res), 0L)
})

test_that ("single unambiguous match", {

    test_data <- data.frame (
        test_name = "this_test",
        fn_name = "fn1",
        parameter = "x",
        test = FALSE,
        stringsAsFactors = FALSE
    )
    obj <- list (test_name = "this_test", fn_name = "fn1", parameter = "x")

    res <- test_these_data (test_data, obj)
    expect_identical (res, FALSE)
})

test_that ("narrows by fn_name", {

    test_data <- data.frame (
        test_name = c ("this_test", "this_test"),
        fn_name = c ("fn1", "fn2"),
        parameter = c ("x", "x"),
        test = c (TRUE, FALSE),
        stringsAsFactors = FALSE
    )
    obj <- list (test_name = "this_test", fn_name = "fn1", parameter = "x")

    res <- test_these_data (test_data, obj)
    expect_identical (res, TRUE)
})

test_that ("narrows by parameter after fn_name", {

    test_data <- data.frame (
        test_name = rep ("this_test", 3),
        fn_name = rep ("fn1", 3),
        parameter = c ("x", "y", "y"),
        test = c (TRUE, FALSE, FALSE),
        stringsAsFactors = FALSE
    )
    obj <- list (test_name = "this_test", fn_name = "fn1", parameter = "x")

    res <- test_these_data (test_data, obj)
    expect_identical (res, TRUE)
})

test_that ("ambiguous test flag errors", {

    test_data <- data.frame (
        test_name = rep ("this_test", 2),
        fn_name = rep ("fn1", 2),
        parameter = rep ("x", 2),
        test = c (TRUE, FALSE),
        stringsAsFactors = FALSE
    )
    obj <- list (test_name = "this_test", fn_name = "fn1", parameter = "x")

    expect_error (
        test_these_data (test_data, obj),
        "Cannot determine single 'test' flag"
    )
})

Try the autotest package in your browser

Any scripts or data that you put into this service are public.

autotest documentation built on Sept. 12, 2026, 5:10 p.m.