統合テスト(この場合、WebサービスがJDBCと通信している)を実行するとき、結果として生じる石鹸の障害を検査できるように、データベースにエラーをスローさせるにはどうすればよいですか?
私はSpringのTransactionalTestFrameworkを使用しているので、それDROP TABLE whatever;
を破るために単に発行するのは不合理でしょうか?:D
統合テスト(この場合、WebサービスがJDBCと通信している)を実行するとき、結果として生じる石鹸の障害を検査できるように、データベースにエラーをスローさせるにはどうすればよいですか?
私はSpringのTransactionalTestFrameworkを使用しているので、それDROP TABLE whatever;
を破るために単に発行するのは不合理でしょうか?:D
私の経験では、これはモックオブジェクトの優れた使用法です。具体的には、単体テストの場合はオブジェクト、統合テストの場合はオブジェクトのセットが特定の障害をどのように処理するかをテストするために、特定の障害を引き起こす必要がある場合。統合テストで障害の特定のケースを強制するのではなく、障害を完全に制御することをお勧めします。
私は最近、同様のジレンマに遭遇したエンティティフレームワークを使用しました。エンティティのモックオブジェクトを作成することで、データベースと相互作用する障害状態をテストするために、特定のテストの実行中にメソッド呼び出し中に例外を強制的にスローすることができました。これはSpringのTransactionalFrameworkを扱った答えではありませんが、同じ原則が当てはまると確信しています。
データベース サーバーのネットワーク コードを抜くのは大変でしょうか? これは、「データベースの死」をかなりうまくシミュレートします。