我正在使用Laravel 5.5框架的PHP。我最近开始为我的代码编写单元测试,有一些问题需要解决:
与数据库交互的最佳方法是什么?应该使用像SQLite这样的InMemoryDB还是使用Mockery模拟所有内容。
如果我与数据库进行交互,那么这仍然是单元测试还是集成测试?
与数据库交互的最佳方法是什么?应该使用像SQLite这样的InMemoryDB还是使用Mockery模拟所有内容。
如果我与数据库进行交互,那么这仍然是单元测试还是集成测试?
我在一家公司工作,我们力求代码覆盖率达到80%,通常我们主要进行端到端测试,包括数据库和模拟外部调用,我们使用SQLite,以便我们的测试套件可以在本地环境中快速运行。如果情况合理,我们会进行单元测试,例如我为不同国家编写的税务服务就进行了单元测试,因为它非常基于输入输出。
为什么我们更喜欢端到端测试:
SQLite存在缺点,主要是它与其他关系型数据库不同,没有很多设置和限制,我曾经遇到过外键强制执行等问题。
所以回答你的问题: