0

ステート マシンでガード機能を使用しています。

const isDouble = (context, event) => {
  return context.num*2 === event.data.number
}

このガードを単体テストして(質問のために単純化しました)、常に意図したとおりに機能することを確認したいと思います(誰かがコンテキスト構造を変更するか、data.number をもたらすサーバーからのリターンを変更する可能性があります)。イベントなどに)。

どこで/どうすればいいですか? xstate を使用した場合の規則的なパターンはありますか? または、必要な場所で完全に独立した単体テストを作成する必要がありますか?

4

1 に答える 1

0

ガードは純粋な関数である必要があるため、引数にテスト ケース データを指定してテストできます。

expect(isDouble(
  { num: 4 },
  { data: { number: 2 }
)).toBeTruthy();

expect(isDouble(
  { num: 5 },
  { data: { number: 2 }
)).toBeFalsy();
于 2021-02-26T14:18:30.963 に答える