There are great tools for unit testing in R out there already but they don't come with a lot of support for mock objects. This package aims at fixing that.

Examples

library(mockery)

m <- mock(TRUE, FALSE, TRUE)

# this will make summary call our mock function rather then
# UseMethod; thus, summary() will return values as above
stub(summary, 'UseMethod', m)

summary(iris) # returns TRUE
#> [1] TRUE
summary(cars) # returns FALSE
#> [1] FALSE
summary(co2)  # returns TRUE
#> [1] TRUE

if (FALSE) { # \dontrun{
library(testthat)

m <- mock(TRUE)
f <- function() read.csv('data.csv')

with_mock(read.csv = m, {
  f()
  expect_call(m, 1, read.csv('data.csv'))
})
} # }