ユーザー インタラクションをテストしている場合は、ユーザー エクスペリエンスに焦点を当てることについて既に述べられていることのみをアドバイスします。「その後、ユーザーにエラー メッセージが表示されます」。ただし、UI の下のレベルをテストしている場合は、私の経験を共有したいと思います。
SpecFlow を使用してビジネス層を開発しています。私の場合、UI インタラクションは気にしませんが、BDD アプローチと SpecFlow は非常に便利です。
ビジネスレイヤーでは、「その後、ユーザーにエラーメッセージが表示される」という仕様は望んでいませんが、実際にはサービスが間違った入力に正しく応答することを検証しています。"When" で例外をキャッチし、"Then" でそれを検証するという既に言われていることをしばらく実行しましたが、このオプションは最適ではないことがわかりました。予期していなかった例外。
現在、明示的な「Then」句を使用していますが、「When」を使用しない場合もあります。次のようにします。
Scenario: Adding with an empty stack causes an error
Given I have entered nothing into the calculator
Then adding causes an error X
これにより、アクションと例外検出を 1 つのステップで明確にコーディングできます。これを再利用して、必要な数のエラー ケースをテストできます。また、失敗しない「When」ステップに関係のないコードを追加する必要もありません。