繁体   English   中英

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

[英]What are standard/best practices for creating unit tests for functionality using databases?

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM