Для модульного тестирования я хотел бы смоделировать функции из другого пакетаВ контексте приведенного ниже примера я хотел бы использовать пакет mockery
для создания stub
для base::mean
.
Задача
Желаемые результаты
В приведенном ниже примере вызов base::mean
в strange_mean
должен вернуть 0
.
strange_mean <- function(...) {
base::mean.default(...)
}
# Replace mean with two
stub(where = base::mean.default,
what = 'strange_mean',
how = 0)
strange_mean(1:10)
# 5.5
# Desired: 0
Попытки
library(mockery)
strange_mean <- function(...) {
base::mean.default(...)
}
# Replace mean with two
stub(where = base::mean.default,
what = 'strange_mean',
how = 0)
strange_mean(1:10)
# 5.5
strange_mean_two <- function(...) {
mean(...)
}
stub(where = mean, what = 'strange_mean_two', how = 0)
strange_mean_two(1:10)
# 5.5
alt_mean <- function(...) {
mean(...)
}
strange_mean_three <- function(...) {
alt_mean(...)
}
stub(where = alt_mean, what = 'strange_mean_three', how = 0)
strange_mean_three(1:10)
# 5.5