【发布时间】:2020-03-14 21:18:03
【问题描述】:
假设我想使用包testthat 为以下函数编写单元测试:
make_matrix = function(vec) {
matrix(vec, nrow=2)
}
预期的功能如下:
make_matrix(seq(1:4))
[,1] [,2]
[1,] 1 3
[2,] 2 4
根据关于 SO 的建议,我会将测试函数的输入存储在 inst/testdata
Where should I put data for automated tests with testthat?
#input = system.file("testdata/input.rds, package "my_package")
input = seq(1:4)
# expected_output_for_seq_1_4 = readRDS()/system.file()?
expected_output_for_seq_1_4 = matrix(c(1,2,3,4), nrow=2)
test_that("basic_test", {
expect_equal(make_matrix(input), expected_output_for_seq_1_4)
})
但是我应该在哪里以及如何存储预期的输出?也在inst/testdata?给定一个更复杂的函数,取决于函数的参数,单个输入可能会有许多预期输出
【问题讨论】: