Openchat API使用PHP8和Laravel使用Outside-In / London风格的TDD实现,类似于。 学习/决定 测试框架很麻烦,我没有选择单元测试控制器和存储库,而是选择仅对它们进行功能测试。 达到SRP平衡确实很困难。 我经常只使用一种方法来获得服务和控制器,这虽然感觉不对,但在大多数情况下似乎是正确的选择。 选择要为其创建接口的类不是直截了当的-我问自己,这是否可能需要换成其他东西? 尽管我已将所有框架废话放到了自己的目录中,但由于易于使用,因此已渗入BL中-拥有集合实在太好了。 我开始怀疑BL是应该仅依赖于单独的库而不是框架,还是完全不依赖。 功能/集成/验收测试(无论您如何称呼)都需要像其他任何代码一样进行处理-它们必须使用相同的原理进行构建,否则最终将成为意大利面条式代码。 我选择将, , 和的处理。单元测试也可能是这种情况,但是我尚未对其进行重构-