globegroup/api-test-case

为 Symfony ^4.3 编写的 GlobeGroup 功能单元测试库

1.3 2020-01-03 12:16 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 - 添加了新的固定数据方式并修复了一些问题