test_cache <- function(expression, expected_value) {
test_that("if possible, reads from cache", {
expect_cache(expression, expected_value)
})
}
test_packages <- function(packages) {
test_that("returns a vector of strings", {
expect_vector(packages,
ptype = character())
})
test_that("returned vector of strings is not empty", {
expect_gt(length(packages), 0)
})
test_that("all returned strings are valid package names", {
expect_pkg_name(packages)
})
}
test_version <- function(version) {
test_that("returns a single string", {
expect_vector(version,
ptype = character(),
size = 1)
})
test_that("returned string is a version code", {
expect_version_code(version)
})
}
test_versions <- function(versions) {
test_that("returns a vector of strings", {
expect_vector(versions,
ptype = character())
})
test_that("returned vector of strings is not empty", {
expect_gt(length(versions), 0)
})
test_that("all returned strings are valid version codes", {
expect_version_code(versions)
})
}
test_tags <- function(tags) {
test_that("returns a vector of strings", {
expect_vector(tags,
ptype = character())
})
test_that("returned vector of strings is not empty", {
expect_gt(length(tags), 0)
})
}
test_dependencies <- function(deps) {
test_that("returns a data frame with package, version & type columns", {
expect_vector(deps,
ptype = as_wood_deps(data.frame(
package = character(),
version = character(),
type = character(),
stringsAsFactors = FALSE
)))
})
test_that("returned 'package' column contains package names", {
pkgs <- deps[["package"]]
if (length(pkgs) == 0) {
expect_equal(pkgs, character())
} else {
expect_pkg_name(pkgs)
}
})
test_that("returned 'version' column contains version codes or NA values", {
versions <- omit_na(deps[["version"]])
if (length(versions) == 0) {
expect_equal(versions, character())
} else {
expect_version_code(versions)
}
})
test_that("returned 'type' column contains dependency types", {
expect_dependency_type(deps[["type"]])
})
}
test_squashed <- function(deps) {
test_that("returns a data frame with origin, package, version & type columns", {
expect_vector(deps,
ptype = as_wood_dep_squashed(data.frame(
origin = character(),
package = character(),
version = character(),
type = character(),
stringsAsFactors = FALSE
)))
})
test_that("returned 'origin' column contains package names", {
pkgs <- deps[["origin"]]
if (length(pkgs) == 0) {
expect_equal(pkgs, character())
} else {
expect_pkg_name(pkgs)
}
})
test_that("returned 'package' column contains package names", {
pkgs <- deps[["package"]]
if (length(pkgs) == 0) {
expect_equal(pkgs, character())
} else {
expect_pkg_name(pkgs)
}
})
test_that("returned 'version' column contains version codes or NA values", {
versions <- omit_na(deps[["version"]])
if (length(versions) == 0) {
expect_equal(versions, character())
} else {
expect_version_code(versions)
}
})
test_that("returned 'type' column contains dependency types", {
expect_dependency_type(deps[["type"]])
})
}
test_list_of <- function(object, names, test) {
test_that("returns an object with list structure", {
expect_type(object, "list")
})
test_that("each element is named after parameter value", {
expect_named(object, names)
})
lapply(object, test)
}
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.