我得到了单元测试背后的想法,但是当它需要数据库功能时,我试图想出一个干净简单的方法。例如,我有一个函数,它根据数据库选择查询返回结果。数据库总是必须保持不变才能正确地看到只返回正确的结果。当需要数据库不活动(无论是读取,写入,更新还是删除)时,执行单元测试(在PHP中)的最佳方法是什么?
答案 0 :(得分:14)
在PHPUnit手册中有一整章内容:
单元测试就像其他一切一样。创建一个已知状态并针对它测试代码,看它是否返回预期结果。
答案 1 :(得分:4)
就个人而言,我创建了一个虚拟测试数据库,并使用已知数据集为每次测试运行填充它(我在setUp
函数中执行此操作)。然后测试针对该数据集运行,然后在tearDown
...
现在,这更像是一个集成测试而不是单元测试(我个人认为它不同于单元测试,按照自己的时间表和其他集成测试一起运行),但它仍然非常有用。
答案 2 :(得分:4)
如果需要数据库,则不是单元测试。