2012-10-28 24 views
0

我有一个db层。我想测试db CRUD结果 我希望每个单独的测试都是独立的,所以我只是在setUp()中创建表,并将所有表放在tearDown()中。那么有没有什么好的方法来独立测试数据库访问?我的意思是我不需要在每次测试中删除所有表格如何测试数据库访问代码

+0

为什么不'删除from'表? –

回答

1

有几种方法。

  1. 您可以使用“DELETE”语句删除每次测试后的所有数据。据我所知,删除速度很慢),所以不太可取的做法。

  2. 您可以在每次测试后截断表格,以使它们为空。

  3. (我最喜欢的一个)在每次测试前打开一个事务,并且回滚它在测试结束后(甚至成功!)。这样你就可以像在测试之前一样保存db中的状态。

希望这有助于在拆卸或设置

+0

谢谢你!你和@ k3b都给了我很好的建议,所以我很难选择哪一个作为答案!最后,我选择你的,因为你给我三种方法... – jiluo

1

您可以在数据库事务中执行数据库测试,该测试将在测试后回滚。

例如在java/spring中,可以使用将为每个测试创建和回滚事务的 TestContext framework

+0

感谢您的建议!我不知道以前使用交易。 – jiluo