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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。