R 单元测试因异常而失败

R 单元测试因异常而失败,r,unit-testing,R,Unit Testing,在svUnit中,如果运行时expr生成异常,则checkException(文档)功能将通过 这似乎很违反直觉。如果代码按预期运行,则不会生成异常,因此测试将失败。但是,在checkEquals的情况下,正确运行的代码将通过测试,正如预期的那样 为什么当代码按预期运行时,checkException会导致测试失败,而其余的check功能则相反?另外,是否有一个函数的行为类似于checkException,但功能正好相反?有时您希望抛出异常。一种情况可能是,您有一个接收用户输入并提供结果的web

在svUnit中,如果运行时
expr
生成异常,则
checkException
(文档)功能将通过

这似乎很违反直觉。如果代码按预期运行,则不会生成异常,因此测试将失败。但是,在
checkEquals
的情况下,正确运行的代码将通过测试,正如预期的那样


为什么当代码按预期运行时,
checkException
会导致测试失败,而其余的
check
功能则相反?另外,是否有一个函数的行为类似于
checkException
,但功能正好相反?

有时您希望抛出异常。一种情况可能是,您有一个接收用户输入并提供结果的web服务。您可能有一个全局处理程序,该处理程序通过创建一个错误响应来处理某些“InvalidParameter”异常,解释哪个参数无效以及为什么无效。在这种情况下,您可能希望测试提供无效参数是否确实会引发异常。否则,您将如何检查您的代码在本应失败时是否失败?如果您说您的代码按预期运行,它将不会生成异常[…],这是错的。当我运行
log(“a”)
时,它会抛出一个错误,这就是我所期望的。因此,运行
checkException(log(“a”))
非常有意义。此外,虽然我不能专门与svUnit对话,但任何生成异常的测试都不会预期并检查该异常,应该失败。checkException应该与默认行为相反——只抛出异常而不检查异常的测试应该失败。