gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-28 19:38:44 24 4
gpt4 key购买 nike

我开始为 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com