目前我们的DBA设计的数据库没有定义外键,这是让开发团队为CRUD创建单独测试的单元测试。
我们希望让数据库团队在实际的数据库中开始使用外键,但我们还希望能够在不必创建父行的情况下测试每个操作。
有没有办法在没有alter table权限的情况下禁用外键约束?
你如何应对这种情况?
答案 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”虚拟物品