使用数据库回滚进行单元测试

时间:2010-12-08 05:36:23

标签: c# unit-testing black-box-testing

我刚刚开始了解c#环境中单元测试的重要性。现在,我想知道如何实现黑盒单元测试,在数据库上执行插入,删除和更新,然后在成功测试后清理数据。

您如何实际执行回滚插入/更新/删除数据的过程?你只是重置索引并删除插入的行?或者通过创建脚本来恢复表的原始状态?

请指导我,我很感激。谢谢!

4 个答案:

答案 0 :(得分:5)

我们在开发周期中所做的工作。当我们开发应用程序时,我们总是在脑海中进行单元测试和负载测试。因此,我们使用userId或其他方法在每个数据库的表中创建一列。然后,当我们运行负载测试或单元测试时,我们在每列中插入 UserId -1 ,指出它是负载测试数据,并且在单元测试数据的情况下指示 -2 。然后我们在数据库端预先定义作业,这将在一段时间后清理该数据。

答案 1 :(得分:3)

只要您的测试简洁,并且我认为它必须是 - 为了测试您的DAL,为什么不在测试完成后回滚的事务中执行插入/更新/删除。

另一种选择是在测试清理方法中使用特定的更新/删除脚本来回滚您更新/插入到测试前测试值的确切更改。

答案 2 :(得分:1)

我认为删除CleanUp方法中的行应该是不错的选择。

通过这种方式,您将始终测试删除行代码。

答案 3 :(得分:0)

一种选择是使用Mock数据库代替真实数据库。这是描述它的link