Я пытаюсь написать тест для функции пакета в R.
Допустим, у нас есть функция, которая просто записывает строку x
на диск, используя writeLines()
:
exporting_function <- function(x, file) {
writeLines(x, con = file)
invisible(NULL)
}
Один из способов проверить это - проверить, существует ли файл. Как правило, он не должен существовать вначале, но после запуска функции экспорта он должен. Кроме того, вы можете проверить размер файла больше 0:
library(testthat)
test_that("file is written to disk", {
file = 'output.txt'
expect_false(file.exists(file))
exporting_function("This is a test",
file = file)
expect_true(file.exists(file))
expect_gt(file.info('output.txt')$size, 0)
})
Это хороший способ проверить это? В политике хранения CRAN указано, что Packages should not write in the user’s home filespace (including clipboards), nor anywhere else on the file system apart from the R session’s temporary directory
. Будет ли этот тест нарушать это ограничение?
Есть функция wait_output_file. Из документации и примеров я не уверен, является ли это более подходящим ожиданием для проверки функции. Это требует object
аргумент, который должен быть object to test
. Какой объект нужно проверить в моем случае?