单元测试和外键问题

时间:2011-04-18 16:30:16

标签: c# sql-server-2008

目前我们的DBA设计的数据库没有定义外键,这是让开发团队为CRUD创建单独测试的单元测试。

我们希望让数据库团队在实际的数据库中开始使用外键,但我们还希望能够在不必创建父行的情况下测试每个操作。

有没有办法在没有alter table权限的情况下禁用外键约束?

你如何应对这种情况?

2 个答案:

答案 0 :(得分:1)

我们要求每个测试都设置它所期望的环境。这意味着,如果我们必须访问数据库,每个测试都会首先设置它的环境。我们确实使用了一些辅助方法来填充数据库的常见部分,但我们并没有弄乱模式本身,因为这是许多情况下测试内容的一部分。

通过使用内存数据库进行单元测试,我们也使这更容易一些,因此每个测试都更加独立。

答案 1 :(得分: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”的数据库中有 Dummy-Parent-Objects 。孩子 - 物品 - 父母 然后可以引用“-1”虚拟物品