elijahb / phpcs-testability
此软件包的最新版本(v1.0.0-alpha)没有可用的许可信息。
PHPCodeSniffer单元测试代码可测试性嗅探器
v1.0.0-alpha
2017-01-22 13:18 UTC
Requires (Dev)
- phpunit/phpunit: ^5.7
- squizlabs/php_codesniffer: ^2.7
This package is not auto-updated.
Last update: 2024-09-15 00:21:44 UTC
README
简介
本项目提供了一些设计模式嗅探器,用于提高单元测试代码的可测试性
- 使用依赖注入(不要使用 new 创建实例)
- 限制调用链的长度($this->property->service->method->troubles)
- 不要调用同一类的方法(这表明你的代码太复杂,应该分割成不同的服务)
- 不要使用静态调用(Service::method())
- 仅使用公共方法(私有方法无法真正进行单元测试,这表明你应该考虑创建新的服务)
它还提供了两个其他嗅探器,对CI环境很有用
- 检查每个类是否存在测试用例
- 检查每个方法至少有一个测试
如何使用
- 安装 PHPCodeSniffer
- 使用Composer安装phpcs-testability
composer require --dev elijahb/phpcs-testability
- 将标准添加到您的自定义PHPCodeSniffer ruleset.xml文件中
<rule ref="./vendor/elijahb/phpcs-testability"/>
推荐
您还可以使用另外两个嗅探器来补充本项目中的嗅探器
- Generic.Metrics.NestingLevel(嵌套级别为2)
- Generic.Metrics.CyclomaticComplexity(复杂度为3)
使用所有这些嗅探器,理想情况下在CI环境中,您可以确保拥有可维护的且完全单元测试的代码。