SpecFlow を使用して、永続化レイヤーと通信する API サービス レイヤーを呼び出しました。私たちのシナリオのほとんどは、API を使用してデータベースをさまざまな状態にセットアップすることで適切にカバーされていますが、失敗状態であるため、API を介してデータベースを取得できないシナリオがいくつかあります。
私たちは、SpecFlow ソリューションが対話するレイヤーを作成できると考えていました。これにより、データベースがその状態に「ファッジ」され、API レイヤーを呼び出して、期待される応答が得られるかどうかを確認できるようになります。しかし、これは BDD に関して正しいのでしょうか? BDD についての私の理解は、メインのハッピー パスと例外パスをテストする ATDD と非常によく似ており、細かい粒度のものは単体テストする必要があります。
API を介して何かを実行できない場合は、BDD シナリオでテストすべきではありませんか?