使用数据库创建功能单元测试的标准/最佳实践是什么?

时间:2010-08-24 19:11:40

标签: php database unit-testing

我得到了单元测试背后的想法,但是当它需要数据库功能时,我试图想出一个干净简单的方法。例如,我有一个函数,它根据数据库选择查询返回结果。数据库总是必须保持不变才能正确地看到只返回正确的结果。当需要数据库不活动(无论是读取,写入,更新还是删除)时,执行单元测试(在PHP中)的最佳方法是什么?

3 个答案:

答案 0 :(得分:14)

在PHPUnit手册中有一整章内容:

单元测试就像其他一切一样。创建一个已知状态并针对它测试代码,看它是否返回预期结果。

答案 1 :(得分:4)

就个人而言,我创建了一个虚拟测试数据库,并使用已知数据集为每次测试运行填充它(我在setUp函数中执行此操作)。然后测试针对该数据集运行,然后在tearDown ...

上删除

现在,这更像是一个集成测试而不是单元测试(我个人认为它不同于单元测试,按照自己的时间表和其他集成测试一起运行),但它仍然非常有用。

答案 2 :(得分:4)

如果需要数据库,则不是单元测试。