Testthat - проверить, можно ли загрузить файл и использовать его для дальнейших тестов - PullRequest
0 голосов
/ 25 мая 2018

Я хочу проверить набор данных, используя testthat, и в качестве первого теста я хочу проверить, можно ли загрузить.Я делаю это следующим образом:

test_that( "Data can be loaded",
           {
             expect_error(
               nd <<- read_feather(DATAFILE),
               regexp = NA
             )
           }
)

Как вы видите, я должен использовать страшную <<-, чтобы получить доступ к nd в следующих тестах:

test_that(
  "Names are OK",
  {
    expect_named( nd, nd_names )
  }
)

Есть ли лучшая альтернатива для использования <<- в этом случае?

Ответы [ 2 ]

0 голосов
/ 25 мая 2018

Вот возможный шаблон (не проверенный!) С использованием пакета memoise:

load_nd <- function () {
  expect_error(
        nd <- read_feather(DATAFILE), 
        regexp = NA)
  nd
}

load_nd <- memoise::memoise(load_nd)

Теперь вызывайте функцию всякий раз, когда вам нужны данные.Вы можете определить функцию в testthat.R, или в вспомогательном файле (имя начинается с helper) в каталоге testthat, или просто в начале данного тестового файла.

0 голосов
/ 25 мая 2018

Сначала к тесту.Затем загрузите его снова

test_that( "Data can be loaded", { expect_error( read_feather(DATAFILE), regexp = NA ) } ) nd <- read_feather(DATAFILE) test_that( "Names are OK", { expect_named( nd, nd_names ) } )

...