DAO レイヤーをテストする単体テストのセットがあります。次の要件があります: - テストの 1 つのサブセットについて、制約 (外部キー、一意、非 null) を無効にする必要があります。- 他のサブセットについては、そのままにしておく必要があります (ここでデータの整合性をチェックします)。
したがって、いくつかのテストでは、制約を有効にし、他のテストでは無効にしたいと考えています。
まず、制約オプションを無効にするため、DbMantainer(Unitilsの一部)を使用しようとしました。しかし、その後、ソースを調べたところ、移行プロセスを開始した瞬間にのみ(テーブルの変更を介して)制約を削除できることがわかりました。制約が一度削除された後 (最初のテストを開始する前)、後で (整合性テストを) 有効にすることはできません。
私の質問は次のとおりです。1. 制約を無効にできる他のツール (DbMantainer や Unitils など) を提案してもらえますか? 2. そのようなツールが存在しない場合、db 単体テストで制約を無効および有効にするための最良のオプションは何だと思いますか?