0

我有一个数据库层。我想测试 db CRUD 结果我希望每个测试都是独立的,所以我只在 setUp() 中创建表,然后在 tearDown() 中删除所有表。那么有什么好方法可以独立测试数据库访问吗?我的意思是我不需要在每次测试中删除所有表

4

2 回答 2

1

您可以在测试后回滚的数据库事务中进行数据库测试。

例如,在 java / spring 中,您可以使用 TestContext 框架,该框架将为每个测试创建和回滚事务。

于 2012-10-28T08:59:59.653 回答
1

有几种方法。

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

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

  3. (我最喜欢的一个)在每次测试之前打开一个事务,并在测试完成后回滚它(甚至成功!)。这样,您将在 db 中保留测试前的状态。

希望这可以帮助

于 2012-10-28T09:11:39.993 回答