使用测试数据库进行存储过程测试或将所有内容包装在事务中

时间:2019-05-26 23:18:49

标签: c# sql-server

我们的团队有很多微型API,我目前正在建立一个C#specflow项目,以对所有存储过程进行单元测试。我们有3个选择

  1. 为每个微型API创建一个测试数据库。在每次测试开始时,我们都要清除表并用测试数据填充它们,然后对它运行存储过程。

  2. 我们不会创建测试数据库,只是将所有内容包装在事务中。我们仍然会清除并填充测试数据,并针对它运行存储过程,但是在每个测试结束时,我们都会回滚事务

  3. 使用内存数据库,但是根据我的研究,我认为SQL Server不支持该数据库。我研究了EF和SQL lite。 (如果我错了,请纠正我)

每种都有哪些优缺点。我正在尝试权衡它们,以了解最佳做法以及需要注意的地方。

我认为选择(1)更好,因为使用选择(2)时,其他人可能在测试用例运行时正在使用数据库,这可能会使数据库混乱。

但是,使用option(2),我们将不必创建和维护测试数据库

0 个答案:

没有答案