r - 如何测试没有发生错误?

标签 r testing

我开始为 R 包实现测试,并且一直在使用 testthat 包。请注意,我是测试新手,所以我的方法可能不对。

我有一个函数目前在第 16 次执行时失败了,在解决这个问题之前,我想编写一个回归测试,如果它再次出现,它将捕获它。

例如,以下总是抛出相同的错误消息:

 for i in (1:17) myfun()

myfun 不返回任何东西,它只有打开数据库连接的副作用。我很清楚,我可以编写一个预期错误并在错误返回时通过的测试:

 expect_error(for (i in 1:17) myfun()) 

但我不太明白如何编写测试以确保不会发生错误。由于它并不明显,也许我的方法是错误的。我可以弄清楚如何编写更具体的测试,但我想从这个开始。

我应该编写什么类型的测试来确保不会出现这样的错误?

最佳答案

由于 testthat 的更改而进行的主要编辑

从 0.11 版开始(通过 RStudio blog ),直接支持测试是否缺少错误:

expect_error(myfun(), NA)

捕捉warningmessage也是一样:

expect_warning(myfun(), NA)
expect_message(myfun(), NA)

旁注:expect_xxx 函数中有一个info 参数用于传递附加信息。所以你可以这样做:

for (i in 1:17) expect_error(myfun(), NA, info = paste("i =", i))

关于r - 如何测试没有发生错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10826365/

相关文章:

r - dplyr::if_else() 没有正确运行一个函数作为结果,而 base ifelse() 运行得很好。为什么?

r - 并行比较多个 AUC (R)

r - .SDcols 中的 data.table 列号

java - VerifyError : class net. sf.cglib.core.DebuggingClassWriter 覆盖 final方法访问

java - 为什么它一直在模拟对象上抛出 NPE

使用 C# 进行 Selenium 数据驱动测试

testing - 如何在测试计划之间克隆测试用例?

c++ - eclipse CDT : how to test functions?

r - 如何使用 R 进行转化漏斗分析?

r - 查找包中的所有函数(包括私有(private)函数)