axitbv / laravel-blueprint-streamlined-test-addon
用我的更复杂、更具体的、更简化的测试替换 Blueprint 的 TestGenerator,用于 API 资源控制器
0.0.1
2020-07-01 08:25 UTC
Requires
- php: ^7.3
- illuminate/support: ^7.0
- jasonmccreary/laravel-test-assertions: ^1.0
Requires (Dev)
- laravel-shift/blueprint: ^1.14
- orchestra/testbench: ^4.0|^5.0
- phpunit/phpunit: ^8.0|^9.0
This package is auto-updated.
Last update: 2024-09-29 05:29:12 UTC
README
将 Blueprint 的 TestGenerator 替换为我自己的过于复杂、过于具体、更简化的测试,用于 API 资源控制器。
安装
您可以通过 composer 安装此软件包
composer require laravel-shift/blueprint axitbv/laravel-blueprint-streamlined-test-addon
用法
按照常规创建您的 blueprint draft.yaml。为了生成此软件包提供的简化测试,请确保在 controllers:
部分包含 resource: api
简写
models: Certificate: name: string certificate_type_id: id reference: string document: string expiry_date: date remarks: nullable text CertificateType: name: string relationships: hasMany: Certificate controllers: Certificate: resource: api CertificateType: resource: api
resource: api
简写会扩展为生成 API 资源控制器、表单请求、资源和资源集合。然而,它将提供比 Blueprint 默认生成的测试更“具有意见性”但“有效”的测试套件,代码覆盖率100%。
php artisan blueprint:build
这将产生
- database/migrations/2020_07_01_073301_create_certificates_table.php - database/migrations/2020_07_01_073302_create_certificate_types_table.php - app/Certificate.php - app/CertificateType.php - database/factories/CertificateFactory.php - database/factories/CertificateTypeFactory.php - app/Http/Controllers/CertificateController.php - app/Http/Controllers/CertificateTypeController.php - app/Http/Requests/CertificateStoreRequest.php - app/Http/Requests/CertificateUpdateRequest.php - app/Http/Requests/CertificateTypeStoreRequest.php - app/Http/Requests/CertificateTypeUpdateRequest.php - app/Http/Resources/CertificateCollection.php - app/Http/Resources/Certificate.php - app/Http/Resources/CertificateTypeCollection.php - app/Http/Resources/CertificateType.php - tests/Feature/Http/Controllers/CertificateControllerTest.php - tests/Feature/Http/Controllers/CertificateTypeControllerTest.php
然后,运行 php artisan test
❯ php artisan test PASS Tests\Unit\ExampleTest ✓ basic test PASS Tests\Feature\ExampleTest ✓ basic test PASS Tests\Feature\Http\Controllers\CertificateControllerTest ✓ index behaves as expected ✓ store uses form request validation ✓ store saves ✓ show behaves as expected ✓ update uses form request validation ✓ update behaves as expected ✓ destroy deletes and responds with PASS Tests\Feature\Http\Controllers\CertificateTypeControllerTest ✓ index behaves as expected ✓ store uses form request validation ✓ store saves ✓ show behaves as expected ✓ update uses form request validation ✓ update behaves as expected ✓ destroy deletes and responds with Tests: 16 passed Time: 0.55s
或者使用 phpunit
❯ phpunit --coverage-text 72% PHPUnit 8.5.8 by Sebastian Bergmann and contributors. ................ 16 / 16 (100%) Time: 668 ms, Memory: 30.00 MB OK (16 tests, 28 assertions) Code Coverage Report: 2020-07-01 07:41:44 Summary: Classes: 51.85% (14/27) Methods: 64.58% (31/48) Lines: 63.16% (60/95) \App\Console::App\Console\Kernel Methods: 50.00% ( 1/ 2) Lines: 75.00% ( 3/ 4) \App\Http\Controllers::App\Http\Controllers\CertificateController Methods: 100.00% ( 5/ 5) Lines: 100.00% ( 9/ 9) \App\Http\Controllers::App\Http\Controllers\CertificateTypeController Methods: 100.00% ( 5/ 5) Lines: 100.00% ( 9/ 9) \App\Http\Requests::App\Http\Requests\CertificateStoreRequest Methods: 100.00% ( 2/ 2) Lines: 100.00% ( 2/ 2) \App\Http\Requests::App\Http\Requests\CertificateTypeStoreRequest Methods: 100.00% ( 2/ 2) Lines: 100.00% ( 2/ 2) \App\Http\Requests::App\Http\Requests\CertificateTypeUpdateRequest Methods: 100.00% ( 2/ 2) Lines: 100.00% ( 2/ 2) \App\Http\Requests::App\Http\Requests\CertificateUpdateRequest Methods: 100.00% ( 2/ 2) Lines: 100.00% ( 2/ 2) \App\Http\Resources::App\Http\Resources\Certificate Methods: 100.00% ( 1/ 1) Lines: 100.00% ( 7/ 7) \App\Http\Resources::App\Http\Resources\CertificateCollection Methods: 100.00% ( 1/ 1) Lines: 100.00% ( 1/ 1) \App\Http\Resources::App\Http\Resources\CertificateType Methods: 100.00% ( 1/ 1) Lines: 100.00% ( 2/ 2) \App\Http\Resources::App\Http\Resources\CertificateTypeCollection Methods: 100.00% ( 1/ 1) Lines: 100.00% ( 1/ 1) \App\Providers::App\Providers\AppServiceProvider Methods: 100.00% ( 2/ 2) Lines: 100.00% ( 2/ 2) \App\Providers::App\Providers\AuthServiceProvider Methods: 100.00% ( 1/ 1) Lines: 100.00% ( 2/ 2) \App\Providers::App\Providers\EventServiceProvider Methods: 100.00% ( 1/ 1) Lines: 100.00% ( 2/ 2) \App\Providers::App\Providers\RouteServiceProvider Methods: 100.00% ( 4/ 4) Lines: 100.00% ( 14/ 14)
对于代码覆盖率报告,使用 pecl install pcov
安装 PCOV,并使用 --coverage-text
运行 phpunit。
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG
贡献
有关详细信息,请参阅 CONTRIBUTING
安全
如果您发现任何安全问题,请通过电子邮件 j.jacobs@xit.nl 而不是使用问题跟踪器来报告。
致谢
特别感谢
- Jason McCreary 为创建 Blueprint,提供有建设性的反馈,您的愿景以及允许 Blueprint 交换生成器
- Daniel Mason 为我提供了灵感,Blueprint Pest Addon 生成 PestPHP 测试代码
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件