如何在 R 中使用 testthat 来处理 "example files"?

How to work with "example files" using testthat in R?

我正在使用 testthat 创建 R 包。我正在使用的许多函数都需要一个文件作为输入 and/or 写入一个文件以输出。

目前,我的 R 包目录结构大致如下:

- R_package_name
    -/tests
        -/testthat.R
        -/testthat
            -/test_package.R

例如,此类别中的函数为 read.table()write.table()。前者读取某个文件,后者写入文件。

在给定 R 包结构的情况下,为 testthat 测试创建 "example files" 的标准是什么?我可以创建非常小的示例文件作为 tests

中的输入

假设我正在为 write.table():

做测试
test_that("check write.table", {

    df = data.frame( n = c(2, 3, 5), s = c("aa", "bb", "cc"), b = c(TRUE, FALSE, TRUE))
    expect_identical(write.table(df), ???)

})

编辑:显然模拟在 R 中是可能的: https://rdrr.io/a/cran/testthat/man/with_mock.html

我的理解是,标准是将包中的数据作为给定包的 \data 文件夹中的 .RData 对象存储,如果你想测试读取该数据,你有从本质上调用该数据集,写入一个文件,测试读取它,然后清理。

但是,看起来可能有一种方法可以存储原始数据文件,请查看此 link 处理 raw data. Here is another useful link on creating an R data package. creating an R data package