【发布时间】:2019-04-14 00:57:02
【问题描述】:
我正在尝试编写一个测试,以确保在给定特定输入的情况下,一个函数
- 错误
- 提供特定的错误消息
我正在使用testthat::expect_error()
示例
作为一个非常简单、可重现的例子,假设我们有一个乘法函数
test_funct <- function(x) { x * 2 }
还有一个非常简单的测试来测试它在提供类字符输入时是否出错:
test_that(
"function errors when it receives a character object",
{ test_funct("a") %>% expect_error("non-numeric argument to binary operator") }
)
问题
我期待这个测试通过,因为"a" 是类字符,并且确实会产生提供给expect_error()(即"non-numeric argument to binary operator")的错误消息。
但是,测试没有通过,而是返回:
Error: Test failed: 'function errors when it receives a character object'
* non-numeric argument to binary operator
1: test_funct("a") %>% expect_error("non-numeric argument to binary operator")
2: eval(lhs, parent, parent)
3: eval(lhs, parent, parent)
4: test_funct("a")
如何创建一个测试来检查函数是否出错并提供特定的错误消息?
【问题讨论】: