我正在寻找有关出色的最佳实践帮助testthat
。library(xyzpackage)
调用所有包功能的最佳位置在哪里?
我首先设置了一个runtest.R
设置路径和包。然后我运行它只test_files(test-code.R)
包含上下文和测试。结构示例如下:
# runtests.R
library(testthat)
library(data.table)
source("code/plotdata-fun.R")
mytestreport <- test_file("code/test-plotdata.R")
# does other stuff like append date and log test report (not shown)
在我的测试文件中,例如test-plotdata.R
(精简版):
#my tests for plotdata
context("Plot Chart")
test_that("Inputs valid", {
test.dt = data.table(px = c(1,2,3), py = c(1,4,9))
test.notdt <- c(1,2,3)
# illustrating the check for data table as first param in my code
expect_error(PlotMyStandardChart(test.notdt,
plot.me = FALSE),
"Argument must be data table/frame")
# then do other tests with test.dt etc...
})
这是@hadley 打算使用它的方式吗?从期刊文章中不清楚。我是否也应该在我的测试文件中复制库调用?您需要在每个上下文中设置一个库,还是只在文件开头设置一个库?
在r中过度调用 library(package) 可以吗?
要使用设置文件的最佳方式
test_dir()
和其他功能。我确实在我的函数中使用了 require(),但我还在上下文中设置了测试数据示例。(在上面的例子中,你会看到我需要 data.table 包供 test.dt 用于其他测试)。
谢谢你的帮助。