Тестирование предупреждений в R путем сравнения строк (лучшая идея?)

Я работаю над пакетом R, и мне нужна помощь в написании тестовых функций R, которые предназначены для проверки того, правильно ли выдается предупреждение в коде на стороне C, а затем перехватывается на стороне R. Позвольте мне рассказать вам о том, над чем я работаю:

Большая часть того, что я пишу, сделана на стороне C. Кроме того, у меня есть макрос типа if-оператор в C, который позволяет кодеру передавать предупреждение R в виде строки. Основная предпосылка заключается в том, что if (Statement_true) pass_warning_to_R («Предупреждающая строка для передачи»). Что я хотел бы сделать, так это проверить, генерируются ли эти предупреждения, когда я ожидаю / нуждаюсь в них, написав R-файл, который использует блоки tryCatch.

Пока что я написал что-то похожее на это:

counter <- 0
tryCatch({

function_im_testing()

}, warning = function(war) {
     # Check if warning is as expected and if so increment counter
     if(toString(war)=="The warning I'm expecting/testing for"){
        print(toString(war))
        counter <- counter + 1
     }

}, error = function(err) {
      print(toString(err))

}, finally = {
print("Leaving tryCatch")
})

# Stop if the 3 warnings we expected aren't present
stopifnot(counter == 3)

Это метод, который я использую, и до сих пор я даже не смог заставить выполнить оператор if, пытаясь получить одинаковые toString (war) и «Warning for ожидаю / for for». вещь. Это, в дополнение к тому факту, что этот метод довольно небрежный и ненадежный, заставляет меня поверить, что есть лучший способ. Итак, есть ли лучший подход к этому?

Ответы на вопрос(2)

Ваш ответ на вопрос