假设我有一个函数,记录了一个例子(使用roxygen):
#' @title Add two numbers
#' @param x a scalar
#' @param y a scalar
#' @examples
#' testobj <- add(x + y)
add <- function(x, y) {
return(x+y)
}
现在我还要想对结果对象运行一些测试,以确保该函数能够正常运行。
我将testthat
用于此:
context("Adding stuff")
testobj <- add(x, y) # THIS is the duplicate line that bothers me.
test_that(desc = "Additions work", code = {
testthat::expect_length(object = x, n = 1)
})
我如何重复使用示例中创建的testobj
,然后在testthat
中对其进行一些测试?
在这种情况下,这是微不足道的,但如果功能更复杂,则会导致大量重复。
或者我使用这个错误?
答案 0 :(得分:1)
您可以使用从example
导出的utils
函数来运行函数文档中包含的示例。
testobj <- example(add)
# add> testobj <- add(x, y)
请注意,建议您在roxygen评论中使用具体示例:
而不是
#' @examples
#' testobj <- add(x, y)
使用
#' @examples
#' testobj <- add(2, 3)