Specflowを使用して、毎月の給与をモデル化し、毎月の計算された支払いを検証し、最後に年末の数値を検証する一連のシナリオを作成しています。
各月の結果は累積的であるため、後続の各シナリオは前月の追加と控除に依存します。支払い計算はサードパーティのツールを介してデータベースに書き込まれるため、シナリオ間でのテストデータの作成と破棄にはコストがかかります。
私のテストの経験から、テストの実行シーケンスを確実にすることが常に可能であるとは限らないことを私は知っています。いくつかのシナリオの命名規則を使用して実行の順序を制御できますが、リモートのテストランナーがアルファベット順にテストを実行することを保証できません。
私が検討したオプション:
- 多くの与えられた、いつ、そしてアサーションを含む単一のシナリオを通して一年を実行します。これにより、読みにくい単一の巨大なシナリオが発生します。
- シナリオごとに連結「Given」を作成します。「与えられた:X月へのすべての支払いが行われた」。各シナリオではテストデータを作成および破棄する必要があるため、これにより大量のデータベーストラフィックが作成されます。
シナリオ間で状態を保存し、シナリオが目的の順序で実行されるようにするためのより良い方法はありますか?