我们的团队有很多微型API,我目前正在建立一个C#specflow项目,以对所有存储过程进行单元测试。我们有3个选择
为每个微型API创建一个测试数据库。在每次测试开始时,我们都要清除表并用测试数据填充它们,然后对它运行存储过程。
我们不会创建测试数据库,只是将所有内容包装在事务中。我们仍然会清除并填充测试数据,并针对它运行存储过程,但是在每个测试结束时,我们都会回滚事务
使用内存数据库,但是根据我的研究,我认为SQL Server不支持该数据库。我研究了EF和SQL lite。 (如果我错了,请纠正我)
每种都有哪些优缺点。我正在尝试权衡它们,以了解最佳做法以及需要注意的地方。
我认为选择(1)更好,因为使用选择(2)时,其他人可能在测试用例运行时正在使用数据库,这可能会使数据库混乱。
但是,使用option(2),我们将不必创建和维护测试数据库