Я начинаю внедрять тестирование для R-пакета и использовал пакет testthat
. Обратите внимание, что я новичок в тестировании, поэтому, возможно, мой подход отключен.
У меня есть функция, которая в настоящее время терпит неудачу в 16-й раз, когда она выполняется, и, прежде чем исправлять это, я хочу написать регрессионный тест, который поймает его, если он снова появится.
например, следующее всегда выдает одно и то же сообщение об ошибке:
for i in (1:17) myfun()
myfun
ничего не возвращает, он имеет только побочный эффект открытия соединения с базой данных. Мне ясно, что я могу написать тест, который ожидает ошибку и передает, если он возвращается:
expect_error(for (i in 1:17) myfun())
Но я не совсем понимаю, как написать тест, чтобы ошибка не возникала. Поскольку это не очевидно, возможно, мой подход ошибочен. Я могу понять, как писать более конкретные тесты, но я хотел бы начать с этого.
Какой тип теста я бы написал, чтобы убедиться, что такая ошибка не появляется?