【发布时间】:2010-12-25 04:33:27
【问题描述】:
所以我决定将我的几个 R 函数放入一个包中,我正在阅读/学习 Writing R Extension。
它显然抱怨我做错了很多事情。
经过足够的谷歌搜索,我在这里提出了几个问题,这个问题是关于测试风格的:我使用的是RUnit,我喜欢让测试尽可能接近被测试的代码。这样我就不会忘记测试,并将测试用作技术文档的一部分。
例如:
fillInTheBlanks <- function(S) {
## NA in S are replaced with observed values
## accepts a vector possibly holding NA values and returns a vector
## where all observed values are carried forward and the first is
## carried backward. cfr na.locf from zoo library.
L <- !is.na(S)
c(S[L][1], S[L])[1 + cumsum(L)]
}
test.fillInTheBlanks <- function() {
checkEquals(fillInTheBlanks(c(1, NA, NA, 2, 3, NA, 4)), c(1, 1, 1, 2, 3, 3, 4))
checkEquals(fillInTheBlanks(c(1, 2, 3, 4)), c(1, 2, 3, 4))
checkEquals(fillInTheBlanks(c(NA, NA, 2, 3, NA, 4)), c(2, 2, 2, 3, 3, 4))
}
但R CMD check 发出 NOTE 行,像这样:
test.fillInTheBlanks: no visible global function definition for
‘checkEquals’
它抱怨我没有记录测试功能。
我真的不想为测试函数添加文档,而且我绝对不希望向 RUnit 包添加依赖项。
你认为我应该如何看待这个问题?
【问题讨论】:
标签: unit-testing r software-distribution