bugfix> r > 投稿

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 )
  }
)

<<- を使用するためのより良い代替手段はありますかtyhisの場合?

回答 2 件
  • 最初にテストします。その後、再度ロードします

    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 ) } )

  • memoise を使用した可能なパターン(未テスト!)  パッケージ:

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

    ここで、データが必要なときに関数を呼び出します。 testthat.R で関数を定義できます 、またはヘルパーファイル(名前は helper で始まります ) testthat で  ディレクトリ、または特定のテストファイルの先頭。

あなたの答え