在“如何提高 PHP 代码的质量”的湔一部分中:我们设置了一些自动化工具来自动检查我们的代码。这很有帮助但关于我们的代码如何满足业务需求并没有给我们留下任哬印象。我们现在需要创建特定代码域的测试
最常见的测试软件的方法可能是编写单元测试。它们的目的是测试代码的特定单元基于這样的假设:一切都按预期运行。为了能够编写适当的单元测试我们的代码应该遵循一些基本的设计规则。我们应该特别关注 SOLID 原则
在单元测试中,我们确实希望用模擬对象替换所有依赖的服务因此我们一次只测试一个类。但模拟是什么它们是实现与其他对象相同的接口的对象,但它们的行为是受控的例如,假设我们在创建一个价格比较服务我们利用另一个服务来获取当前的汇率。在测试我们的比较器时我们可以使用一个模擬对象来为特定的货币返回特定的汇率,因此我们的测试既不依赖也不调用真正的服务
有几个好的框架可以达到这個目的最常见的可能是 PHPUnit。在我的工作中我发现使用行为方法来编写测试会带来更好的结果,并使我更急切地编写测试对于我们的项目,我们选择 phpspec
安装过程相当简单 – 只需使用: