推举情由
首先声明, 这个库不是替代单元测试的, 也不是推举你谢绝单元测试的, 以是标题利用了伪单测来形容. 单元测试是担保你的代码稳健性的, 无论是开源项目还是业务项目, 代码的健壮性是第一要素, 这也是你对自己, 对他人负任务的表示. 以是不要谢绝单元测试. 那为什么还会有这个推举呢?
imanghafoori1/laravel-microscopeFind Bugs Before They Bite
我们在日常事情中, 常常会碰着工期短, 任务重的情形, 韶光都进行在了开拓中, 单元测试用例的编写来不及怎么办? 这便是推举它的情由, 它可以对项目代码进行智能检测, 由库作者imanghafoori1[1] 自己的话来说便是:

It is created to be smarter than phpstorm and other IDEs in finding errors.
It is created to understand laravel run-time and magic.
It does not show you stupid false errors, all the errors are really errors.
If you have written a lot of tests for your app, you may not need this.
大略机翻一下 (流下了没有知识的眼泪...)
比 PHPStorm 和其他 IDEs 的检测更加智能.阅读下库代码, 会对 Laravel 的运行时及魔术方法的运用有更深入的理解. (我说的)不谎报. 不错报.如果你已经编写了单元测试用例, 那么就不须要它了.食谱备料过程#这是一个用于开拓的包,以是把稳加上--dev参数composerrequireimanghafoori/laravel-microscope--dev
食用方法
phpartisancheck:eventsphpartisancheck:gatesphpartisancheck:viewsphpartisancheck:routesphpartisancheck:psr4phpartisancheck:importsphpartisancheck:all
食用详解
1.check:events
Event::listen(MyEvent::class,'\App\Listeners\MyListener@myMethod');
检讨 MyEvent 的类路径是否精确.检讨 MyEvent 的类路径是否精确.检讨 MyListener 的类路径是否精确.检讨 myMethod 方法是否定义.如果你在 myMethod 方法中定义了类型约束, 则会检讨类型约束是否精确.
2.check:gates
Gate::policy(User::class,'UserPolicy@someMethod');Gate::define('someAbility','UserGate@someMethod');
检讨 Gate 是否有效, 确保该 Gate 引用的类和方法有效.检讨 User 类的路径是否有效.检讨 UserPolicy 类的路径是否有效.检讨 someMethod 是否存在.
3.check:psr4
根据 PSR-4 标准, 检讨 composer.json 文件中配置的所有 psr-4 自动加载项, 并遍历所有类的命令空间是否精确.根据 PSR-4 标准, 自动更正命名空间.check:imports检讨所有的命名空间引入是否精确可以理解 Laravel 别名, 以是 use Request 的办法不会被误报错.5.check:routes
检讨路由引入的掌握器和方法是否精确定义.检讨所有掌握器方法是否定义了精确的类型约束.检讨路由对应的掌握器方法中的 view 利用是否精确, 引用的模板文件是否精确.检讨 blade 模板中的 @include() 和 @extends() 所引用的模板文件是否精确.6.check:all
同时实行以上 5 条.
食用结果由于我没有安装 Laravel Auth 包, 但是 welcome 模板中 route() 利用了Auth 包的方法.
食后感
虽然此库办理了我们开拓中的一些问题, 但是与单元测试比起来, 还是有些差距, 业务性的测试第三方库是无法准确覆盖的, 以是在韶光许可的情形下, 单元测试还是最主要的.
来日诰日接着吃致谢本文排版利用开源工具 Markdown-Nice[2]作者 mdnice[3]参考资料[1] imanghafoori1: https://github.com/imanghafoori1
[2] Markdown-Nice: https://github.com/mdnice/markdown-nice
[3] mdnice: https://github.com/mdnice