我花了很多时间在RSpec上,并花了一些时间进行xunit样式测试。我已经习惯于随意嘲笑和捣乱。
在R中有什么类似嘲笑或顽固的吗?它们有哪些框架?
如果不是,您如何隔离测试?
答案 0 :(得分:5)
在您提出此问题后4年才可用,但testthat
现在确实包含with_mock()
函数:
https://github.com/hadley/testthat/blob/master/R/mock.R
似乎很适合这项法案。
答案 1 :(得分:4)
答案 2 :(得分:2)
mockery包中还有stub
个功能。它类似于with_mock
,但也允许从基本R包中删除基元和函数。
示例:
g = function(y) y
f = function(x) g(x) + 1
test_that('demonstrate stubbing', {
# before stubbing
expect_equal(f(1), 2)
# replace the function 'g' when called from 'f'
stub(f, 'g', function(...) 100)
expect_equal(f(1), 101)
})