我正在将PHP与Laravel 5.5框架一起使用。 我最近开始为代码编写unitTests,但遇到了一些问题:
与数据库交互的最佳方法是什么? 我应该使用像SQLite这样的InMemoryDB还是用Mockery模拟所有内容。
如果我与数据库有交互,那么仍然是unitTesting或Integration Testing?
谢谢您的回答
答案 0 :(得分:1)
我在一家公司中努力争取80%的代码覆盖率,通常我们主要测试End-2-End,并使用数据库和模拟外部调用,我们使用SQLite,以便我们的测试套件可以在本地环境中快速运行。在这种情况下,我们对它进行单元测试,例如,我为单元测试的不同国家/地区提供的税务服务,因为它非常基于输入输出。
为什么我们喜欢End-2-End:
SQLite有缺点,主要是它不能与其他RDB一起使用,因为它存在很多设置和限制,在我的头上,我遇到了外键强制执行等问题。
所以回答您的问题: