2011-04-18 52 views
1

目前我們的DBA設計我們的數據庫時沒有定義外鍵,這是爲了讓開發團隊爲每個表單獨地創建CRUD的單元測試。單元測試和外鍵問題

我們想讓數據庫團隊在實際的數據庫中開始使用外鍵,但是我們也想保持我們測試每個操作而不必創建父行的能力。

有沒有一種方法來禁用外鍵約束沒有更改表權限?

你是如何處理這種情況的?

+0

我們不禁用FK的,它阻止我們做一些愚蠢的事情,或者與損壞的數據有關。 – Nix 2011-04-18 16:33:56

+0

你是否在尋找像http://stackoverflow.com/questions/159038/can-foreign-key-constraints-be-temporarily-disabled-using-t-sql? – a1ex07 2011-04-18 16:38:05

回答

1

我們要求每個測試都設定它所期望的環境。這意味着,如果我們必須擊中數據庫,每項測試都會首先設置環境。我們確實使用了一些輔助方法來填充數據庫的公共部分,但我們不會混淆模式本身,因爲這是許多情況下正在測試的部分。

通過使用內存數據庫進行單元測試,我們還可以使這一點更加容易,因此每個測試都更加獨立。

0

測試你要發貨的東西。

0
> ... we would also like to keep our ability to test each operation without 
    > having to create the parent rows. 
    > Is there a way to disable foreign key constraints without having alter 
    > table permissions? 

沒有,你無法禁用外鍵約束 也許你可以在與id,它們在你的測試中使用的數據庫「-1」 假單親對象。子項目父母 然後可以引用「-1」虛擬項目