elijahb/phpcs-testability

此软件包的最新版本(v1.0.0-alpha)没有可用的许可信息。

PHPCodeSniffer单元测试代码可测试性嗅探器

v1.0.0-alpha 2017-01-22 13:18 UTC

This package is not auto-updated.

Last update: 2024-09-15 00:21:44 UTC


README

Build status

简介

本项目提供了一些设计模式嗅探器,用于提高单元测试代码的可测试性

  • 使用依赖注入(不要使用 new 创建实例)
  • 限制调用链的长度($this->property->service->method->troubles)
  • 不要调用同一类的方法(这表明你的代码太复杂,应该分割成不同的服务)
  • 不要使用静态调用(Service::method())
  • 仅使用公共方法(私有方法无法真正进行单元测试,这表明你应该考虑创建新的服务)

它还提供了两个其他嗅探器,对CI环境很有用

  • 检查每个类是否存在测试用例
  • 检查每个方法至少有一个测试

如何使用

  1. 安装 PHPCodeSniffer
  2. 使用Composer安装phpcs-testability
composer require --dev elijahb/phpcs-testability
  1. 将标准添加到您的自定义PHPCodeSniffer ruleset.xml文件中
<rule ref="./vendor/elijahb/phpcs-testability"/>

推荐

您还可以使用另外两个嗅探器来补充本项目中的嗅探器

  • Generic.Metrics.NestingLevel(嵌套级别为2)
  • Generic.Metrics.CyclomaticComplexity(复杂度为3)

使用所有这些嗅探器,理想情况下在CI环境中,您可以确保拥有可维护的且完全单元测试的代码。