fn2 <- function(args2){
output
}
fn1 <- function(arg1){
tryCatch({
output = do.call(fn2, args2_list)
}, error = function(e){
if(str_detect(e$message, 'err_msg', negate = FALSE)){
<do something>
}
stop(e$message)
})
}
У меня есть некоторый код, структурированный как показано выше. fn2
выдает ошибку, но на данный момент не воспроизводимо. Я знаю только, что это за сообщение об ошибке. Поэтому я поместил tryCatch
, чтобы зафиксировать ошибку и проверить, является ли это тем же сообщением, для которого мне нужно получить больше контекста и немного обработать его. Но мне нужно написать тест с использованием testthat
, который проверяет, что, когда возвращается сообщение об ошибке, он выполняет обработку только в случае правильного совпадения строки, в противном случае - нет. Как я могу это сделать?
Кажется, мне нужно смоделировать fn2
и вернуть сообщение об ошибке, которое попадает в блок tryCatch
. Я попытался использовать stop('err_msg')
в фиктивной функции, но, похоже, он не перехватывается блоком tryCatch
.