fadllabanie / laravel_unittest_generator
v2.5.2
2023-12-31 15:16 UTC
Requires
- php: >=7.3
- illuminate/support: ^8.0|^9.0|^10.0
README
使用 laravel-generator
包来加速您的 Laravel 应用测试工作流程。这个动态工具包是您创建强大单元测试的忠实盟友,只需轻轻一点,魔法般的效果就出现了!
🚀 安装
是时候将 laravel-generator
带入您的项目中。使用 Composer 施展这些魔法。
composer require fadllabanie/laravel-generator
调用 artisan 发布您的配置
php artisan vendor:publish
最后,迁移以塑造您数据库的命运
php artisan migrate
🔧 配置
为了使咒语生效,您的模型必须被赋予这些神秘的属性
public function getFillable() { return [ 'title', 'description', ]; } public function getFillableType() { return [ 'title' => 'string', 'description' => 'text', ]; } public function getRelationData() { return [ 'relationName1' => RelatedModel1::class, 'relationName2' => RelatedModel2::class, // Add other relationships as needed ]; }
支持的数据类型包括:string
、text
、integer
、float
、date
、image
、datetime
、boolean
、password
、email
、token
、belongsTo
📖 使用方法
现在该包已成为您的仓库的一部分,只需使用简单的 artisan 命令,就可以为您的模型施展单元测试。
php artisan generator:run {Model} {ModelPath} {options}
php artisan generator:run Post App/Models -f -r -c
📖 注意
- 如果使用
belongsTo
,则应首先创建关系模型,并在模型中添加 getRelationData
🎛️ 选项
使用这些选项微调您的单元测试生成
-f
或--factory
:在测试旁边召唤一个工厂,用于真实数据的魔法炼金术。-c
或--controller
:召唤一个控制器测试,增加两倍的魔法。-r
或--request
:强制进行请求验证测试,以建立一个坚不可摧的防御。
✨ 功能
- 生成工厂:根据您的模型
$fillable
和$fillableType
自动创建工厂。 - CRUD 单元测试:在一个咒语中召唤创建、读取、更新、删除和关系测试。
- 动作模式控制器:使用离散的动作类来组织您的控制器逻辑,以提高清晰度和可重用性。
🧪 生成工厂
该命令将您的模型属性转化为工厂类,为轻松创建测试数据铺平道路。
php artisan generator:run {Model} {ModelPath} -f
🔒 生成请求验证测试
通过自动化请求验证测试来增强您应用程序的防御能力。
php artisan generator:run {Model} {ModelPath} -r
🛠️ 使用动作模式生成控制器
通过将控制器逻辑拆分为专用动作类来拥抱干净的架构。
php artisan generator:run {Model} {ModelPath} -c
💡 特性背后的魔法
我们的错误日志特性是您的无声守护者,在阴影中记录每个失误,以确保您的应用程序永不失灵。
好处
- 自动错误跟踪:无需举起魔杖即可捕获错误。
- 轻松错误检索:将数据库作为您的水晶球,以获取错误见解。
- 简化调试:使用魔法地图导航错综复杂的错误。
如何生成
要为您的控制器配备我们的特性,只需将其与以下内容集成
php artisan generator:run {Model} {ModelPath} -f -r -c
📜 已知问题
确保您的模型命名正确,并且您的 composer.json
路径预言正确。必须声明 $fillable
和 $fillableType
以正确生成测试。
📚 贡献
加入我们的贡献者行列!无论是修复、增强还是新功能,您的拉取请求都将受到热烈欢迎。
这个 README 不仅可以指导用户通过单元测试生成的神秘艺术,还可以传达包的神奇本质。它旨在通过将技术说明与主题魅力相结合来吸引开发者。