Я создаю R-пакет и нашел полезным разбить части логики в одном файле на внутренние вспомогательные функции, которые я определяю в том же файле. У меня есть особый случай, когда моя функция решает, какую вспомогательную функцию использовать через match.fun()
. Поскольку они не будут полезны другим функциям или людям, я не хочу помещать их в отдельные файлы, и я не хочу их экспортировать.С Roxygen и testthat, каков надлежащий способ сделать внутренние вспомогательные функции доступными для тестовых площадок, называемых во время проверки R CMD?
Все мои экзамены проходят с использованием test_dir()
. Когда я не экспортирую эти функции, мои тесты не срабатывают при проверке R CMD.
"object 'helperfunction1' of mode 'function' was not found", quote(get(as.character(FUN),
mode = "function", envir = envir)))
Посмотрев на this post, я могу получить вещи на работу, если я явно экспортировать или добавлять записи экспорта в пространстве имен, но опять же я не хочу, чтобы экспортировать их.
Есть ли лучший способ сделать это и не требует от меня экспорта? (Я буду признавать, что источником проблемы может быть match.fun()
, и я открыт для других способов вызова функций во время выполнения.)
Не можете ли вы просто использовать 'yourPackage ::: helperfunction1 (...' there? (Обратите внимание, что это 3 не 2 двоеточия.) –