JestでdataProviderを使う


やりたいこと

Jestでテストをする際に、テスト内容は同じで与えられるデータだけが異なる場合に、重複した処理を書かずに済ませたい。

PHPUnitでテストを書いている時に使ったことのある、data providerという仕組みがJestにもないか調べてみた。

実装

以下のように、describe.each()を使えばdata providerと同じようなことができる。

interface Datum {
  hoge: string,
}

const data: Datum[] = [
  {
    hoge: 'hoge'
  },
  .
  .
  .
]

describe.each(data)('hogeのユニットテスト', (datum: Datum) => {
  const { hoge } = datum

  it(`${hoge}の場合。`, () => {
    // テストの実装
  })
})

参考記事

Using data provider pattern for javascript unit tests