заглушки и издевается в R - PullRequest
7 голосов
/ 15 марта 2012

Я провел много времени с RSpec и некоторое время с тестами в стиле xunit. Я привык иметь в своем распоряжении издевательства и окурки.

Есть ли что-то вроде насмешек или заглушки в R? Какие рамки у них есть?

Если нет, то как вы изолируете свои тесты?

Ответы [ 3 ]

5 голосов
/ 08 сентября 2016

Он не был доступен в течение 4 лет после того, как вы задали этот вопрос, но похоже, что testthat теперь включает в себя функцию with_mock():

https://github.com/hadley/testthat/blob/master/R/mock.R

Кажется,вполне вписывается.

4 голосов
/ 15 марта 2012

Есть пакеты CRAN RUnit , svUnit и testthat , каждый из которых обеспечивает модульное тестирование для R.

Если вам нужна другая структура, возможно, вам придется ее написать. CRAN с радостью примет ваш код (если он соответствует обычным стандартам).

2 голосов
/ 28 октября 2017

Существует также функция stub в пакете mockery .Он похож на 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)
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...