axitbv/laravel-blueprint-streamlined-test-addon

用我的更复杂、更具体的、更简化的测试替换 Blueprint 的 TestGenerator,用于 API 资源控制器

0.0.1 2020-07-01 08:25 UTC

This package is auto-updated.

Last update: 2024-09-29 05:29:12 UTC


README

Latest Version on Packagist Build Status Quality Score Total Downloads

将 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 而不是使用问题跟踪器来报告。

致谢

特别感谢

许可

MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件