assertCondition
位于 tools
包(package)。 说明
测试代码时,仅检查结果是否正确是不够的,还要在适当的情况下发出错误或警告信号。此处说明的函数为此提供了便利的工具。这三个函数分别检查对提供的表达式进行求值是否会产生错误、警告或指定的条件列表之一。如果断言失败,则会发出错误信号。
用法
assertError(expr, classes = "error", verbose = FALSE)
assertWarning(expr, classes = "warning", verbose = FALSE)
assertCondition(expr, ..., .exprString = , verbose = FALSE)
参数
expr |
未评估的R表达式将通过以下方式求值 |
classes, ... |
|
.exprString |
要打印的字符串对应于 |
verbose |
如果是 |
细节
assertCondition()
使用通用条件机制来检查计算 expr
时生成的所有条件。无论可能发出什么其他条件,其中任何提供的条件类的出现都会满足断言。
assertError()
是一个用于断言错误的便捷函数;它调用assertCondition()
。
assertWarning()
断言将发出警告信号,但不会发出错误信号,而即使警告之后出现错误,assertCondition(expr, "warning")
也会得到满足。请参阅示例。
值
如果满足断言,则会以不可见的方式返回所有发出信号的条件对象的列表。有关这些对象的解释,请参阅conditionMessage
。请注意,评估期间发出的所有条件都会返回,无论它们是否在要求范围内。
例子
assertError(sqrt("abc"))
assertWarning(matrix(1:8, 4,3))
assertCondition( ""-1 ) # ok, any condition would satisfy this
try( assertCondition(sqrt(2), "warning") )
## .. Failed to get warning in evaluating sqrt(2)
assertCondition(sqrt("abc"), "error") # ok
try( assertCondition(sqrt("abc"), "warning") )# -> error: had no warning
assertCondition(sqrt("abc"), "error")
## identical to assertError() call above
assertCondition(matrix(1:5, 2,3), "warning")
try( assertCondition(matrix(1:8, 4,3), "error") )
## .. Failed to get expected error ....
## either warning or worse:
assertCondition(matrix(1:8, 4,3), "error","warning") # OK
assertCondition(matrix(1:8, 4, 3), "warning") # OK
## when both are signalled:
ff <- function() { warning("my warning"); stop("my error") }
assertCondition(ff(), "warning")
## but assertWarning does not allow an error to follow
try(assertWarning(ff()))
assertCondition(ff(), "error") # ok
assertCondition(ff(), "error", "warning") # ok (quietly, catching warning)
## assert that assertC..() does not assert [and use *one* argument only]
assertCondition( assertCondition(sqrt( 2 ), "warning") )
assertCondition( assertCondition(sqrt("abc"), "warning"), "error")
assertCondition( assertCondition(matrix(1:8, 4,3), "error"),
"error")
作者
John Chambers and Martin Maechler
也可以看看
相关用法
- R add_datalist 将“datalist”文件添加到源包中
- R update_PACKAGES 更新现有的 PACKAGES 文件
- R print.via.format 打印实用程序
- R prepare_Rd 准备用于渲染的解析 Rd 对象
- R startDynamicHelp 启动动态 HTML 帮助系统
- R getVignetteInfo 获取有关已安装 Vignettes 的信息
- R matchConcordance 源行和目标行之间的一致性
- R checkVignettes 检查包装插图
- R Rd2HTML 路转换器
- R HTMLheader 为 R 帮助生成标准 HTML 标头
- R undoc 查找未记录的对象
- R vignetteInfo 有关晕影的基本信息
- R HTMLlinks 从包文档收集 HTML 链接
- R xgettext 从包中的 R 文件中提取可翻译消息
- R toTitleCase 将标题转换为标题大小写
- R package_native_routine_registration_skeleton 编写用于将本机例程注册添加到包的框架
- R parse_Rd 解析 Rd 文件
- R update_pkg_po 准备包的翻译
- R vignetteEngine 设置或获取晕影处理引擎
- R Rcmd R命令接口
- R Rdindex 从 Rd 文件生成索引
- R checkMD5sums 检查并创建 MD5 校验和文件
- R checkFF 检查外部函数调用
- R package_dependencies 包的依赖层次结构的计算
- R QC R 代码和/或文档的 QC 检查
注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 Asserting Error Conditions。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。