是否有一个简单的工作流程来编写将对象存储为 .rds 或 .rda 的测试,以便将来运行测试可以比较代码执行的结果与存储的对象?这样可以很容易地检查返回一些复杂值的函数是否仍按应有的方式运行。
例如,类似:
test_obj(res <- lm(y ~ x, data.frame(x=1:3, y=5:7)))
其中,如果 *extdata/test_obj.res.rds* 不存在,将在 *inst/extdata/test_obj.res.rds* 中创建它,res
从上面开始,但如果它确实存在,将相同/all.equal 等. 新生成的对象与从 rds 中恢复的对象。
我会发现这样的测试非常有用,我有点惊讶 RUnit/svUnit / testthat 没有实现某种东西(我希望他们这样做,但我还没有找到它)。
testthat::make_expectation
很接近,但我更喜欢自动存储/检索 rds 而不是将文本表示复制粘贴到文件中,我认为这是你应该使用的方式testthat::make_expectation
(我想我可以通过管道将 stdout() 传输到 . R 文件,但即便如此,仍有一些自动化可以促进该过程)。