网站首页 > 博客文章 正文
推荐理由
首先声明, 这个库不是替代单元测试的, 也不是推荐你拒绝单元测试的, 所以标题使用了伪单测来形容. 单元测试是保证你的代码稳健性的, 无论是开源项目还是业务项目, 代码的健壮性是第一要素, 这也是你对自己, 对他人负责任的体现. 所以不要拒绝单元测试. 那为什么还会有这个推荐呢?
imanghafoori1/laravel-microscope
Find 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 参数
composer require imanghafoori/laravel-microscope --dev
食用方法
php artisan check:events
php artisan check:gates
php artisan check:views
php artisan check:routes
php artisan check:psr4
php artisan check:imports
php artisan check: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
猜你喜欢
- 2024-11-01 pyspark on jupyterlab环境搭建(pyspark环境配置)
- 2024-11-01 我的第四款编辑器:微信公众号上用 Markdown 显示代码
- 2024-11-01 在 Github Action 中执行 C# 脚本
- 2024-11-01 粉丝投稿:白金3776Nice M尖钢笔评测
- 2024-11-01 优秀内容创作工具推荐:拖拽式排版工具、Markdown排版、封面制作
- 2024-11-01 做了N+1个企业项目之后,我总结了这些React必备插件
- 2024-11-01 Python界面库NiceGui 组件体验 之 1
- 2024-11-01 GitHub 润色框架,让你的GitHub不再索然无味
- 2024-11-01 5款工具,让你轻松创建并分享优美的项目源码
- 2024-11-01 Markdown比Word优势在哪?(markdown使用技巧)
你 发表评论:
欢迎- 07-08Google Cloud Platform 加入支持 Docker 的容器引擎
- 07-08日本KDDI与Google Cloud 签署合作备忘录,共探AI未来
- 07-08美国Infoblox与Google Cloud合作推出云原生网络和安全解决方案
- 07-08GoogleCloud为Spanner数据库引入HDD层,将冷存储成本降低80%
- 07-08谷歌推出Cloud Dataproc,缩短集群启动时间
- 07-08Infovista与Google Cloud携手推进射频网络规划革新
- 07-08比利时Odoo与Google Cloud建立增强合作,扩大全球影响力
- 07-08BT 和 Google Cloud 通过 Global Fabric 加速 AI 网络
- 最近发表
-
- Google Cloud Platform 加入支持 Docker 的容器引擎
- 日本KDDI与Google Cloud 签署合作备忘录,共探AI未来
- 美国Infoblox与Google Cloud合作推出云原生网络和安全解决方案
- GoogleCloud为Spanner数据库引入HDD层,将冷存储成本降低80%
- 谷歌推出Cloud Dataproc,缩短集群启动时间
- Infovista与Google Cloud携手推进射频网络规划革新
- 比利时Odoo与Google Cloud建立增强合作,扩大全球影响力
- BT 和 Google Cloud 通过 Global Fabric 加速 AI 网络
- NCSA和Google Cloud合作开发AI驱动的网络防御系统,加强泰国网络空间的安全性
- SAP将在沙特阿拉伯 Google Cloud 上推出BTP服务
- 标签列表
-
- ifneq (61)
- 字符串长度在线 (61)
- googlecloud (64)
- messagesource (56)
- promise.race (63)
- 2019cad序列号和密钥激活码 (62)
- window.performance (66)
- qt删除文件夹 (72)
- mysqlcaching_sha2_password (64)
- ubuntu升级gcc (58)
- nacos启动失败 (64)
- ssh-add (70)
- jwt漏洞 (58)
- macos14下载 (58)
- yarnnode (62)
- abstractqueuedsynchronizer (64)
- source~/.bashrc没有那个文件或目录 (65)
- springboot整合activiti工作流 (70)
- jmeter插件下载 (61)
- 抓包分析 (60)
- idea创建mavenweb项目 (65)
- vue回到顶部 (57)
- qcombobox样式表 (68)
- tomcatundertow (58)
- pastemac (61)
本文暂时没有评论,来添加一个吧(●'◡'●)