我有一个数据库层。我想测试db CRUD结果 我希望每个测试都是独立的,所以我只是在setUp()中创建表,并删除tearDown()中的所有表。那么有没有什么好方法可以独立测试数据库访问?我的意思是我不需要在每个测试中删除所有表格
答案 0 :(得分:1)
您可以在数据库事务中执行数据库测试,该事务将在测试后回滚。
例如在java / spring中你可以使用 TestContext framework将为每个测试创建和回滚事务。
答案 1 :(得分:1)
有几种方法。
您可以使用“DELETE”语句删除每次测试后的所有数据。据我所知,删除很慢)所以它不太可取。
您可以在每次测试后截断表格,以便它们为空。
(我最喜欢的一个)在每次测试之前打开一个事务,并在测试结束后回滚(甚至成功!)。这样,您将保留db中的状态,就像测试之前一样。
希望这有帮助