globegroup / api-test-case
为 Symfony ^4.3 编写的 GlobeGroup 功能单元测试库
1.3
2020-01-03 12:16 UTC
Requires
- ext-json: *
- friendsofsymfony/oauth-server-bundle: dev-master
- fzaninotto/faker: ^1.8
- hautelook/alice-bundle: ^2.5
- phpunit/phpunit: ^7
- symfony/browser-kit: ^4.3
- symfony/console: ^4.3
- symfony/dotenv: ^4.3
- symfony/flex: ^1.4
- symfony/framework-bundle: ^4.3
- symfony/http-client: ^4.3
- symfony/monolog-bundle: ^3.4
- symfony/orm-pack: ^1.0
- symfony/phpunit-bridge: ^4.3
- symfony/validator: ^4.3
- symfony/yaml: ^4.3
Conflicts
This package is auto-updated.
Last update: 2024-09-05 23:59:46 UTC
README
composer require globegroup/api-test-case --dev
为您的 API 进行每个功能测试时,都应该扩展 GlobeGroup\ApiTest\ApiTestCase
此库允许您轻松地为每个测试加载固定数据,并在每个测试前重新启动数据库。
安装
在 config/packages/test/
下创建 services.yml 文件
touch config/packages/test/services.yaml
将配置粘贴到您新创建的 services.yml
services: # Here comes configuration for oAuth test.oauth.user: class: App\Entity\User\User #your user entity public: true autowire: true test.oauth.client: class: App\Entity\OAuth2\Client #your oauth client entity public: true autowire: true test.oauth.token: class: App\Entity\OAuth2\AccessToken #your oauth access token entity public: true autowire: true
使用
创建新的测试用例,用于测试一个端点(ws),其名称将告诉您它做什么
ListingModelTest
用于测试列表CreatingModelTest
用于测试实体或模型创建DeletingModelTest
用于删除、标记为已删除或取消分配FetchingModelTest
用于显示一个模型/实体
每个测试都必须解释它在用例中的作用,良好的做法是将它们写成 `snake_case`。以下是一些示例
/** @test */ function only_authorized_user_can_list_products() { ... your test goes here }
/** @test */ function name_is_required() { ... your test goes here }
/** @test */ function not_found_when_no_category_provided() { ... your test goes here }
变更日志
- v0.1 - ApiTestCase, Traits, 加载固定数据,断言 JSON,断言状态码
- v1.0 - 添加了 oauth 登录,修复了数组子集断言,调试 Traits,改为在事务中工作
- v1.1 - 更改为 webtestcase
- v1.2 - 添加了新的固定数据方式并修复了一些问题