関数が期待される data.frame を返すことをテストしたいと思います。data.frame が大きすぎて R ファイルで定義できません (たとえば、 のようなものを使用しますstructure()
)。次のように、ディスクから簡単に取得しようとすると、環境に問題があります。
test_that("SO example for data.frame retreival", {
path_expected <- "./inst/test_data/project_longitudinal/expected/default.rds"
actual <- data.frame(a=1:5, b=6:10) #saveRDS(actual, file=path_expected)
expected <- readRDS(path_expected)
expect_equal(actual, expected, label="The returned data.frame should be correct")
})
コンソールで実行すると、行は正しく実行されます。しかし、実行するdevtools::test()
と、ファイルから rds/data.frame を読み取るときに次のエラーが発生します。
1. Error: All Records -Default ----------------------------------------------------------------
cannot open the connection
1: withCallingHandlers(eval(code, new_test_environment), error = capture_calls, message = function(c) invokeRestart("muffleMessage"),
warning = function(c) invokeRestart("muffleWarning"))
2: eval(code, new_test_environment)
3: eval(expr, envir, enclos)
4: readRDS(path_expected) at test-read_batch_longitudinal.R:59
5: gzfile(file, "rb")
これを機能させるには、環境にどのような調整が必要ですか? 簡単な方法がない場合、大きな data.frames をテストする良い方法は何ですか?