solido / test-utils
solido 套件测试工具
Requires
- php: ^8.1
- cache/array-adapter: ^1.0
- phpspec/prophecy-phpunit: ^2.0
- solido/common: ^0.3 || ^0.4
Requires (Dev)
- ext-json: *
- doctrine/dbal: ^2.10 || ^3.0
- doctrine/mongodb-odm: ^2.0
- doctrine/orm: ^2.7
- laravel/framework: ^8.0 || ^9.0 || ^10.0
- nyholm/psr7: ^1.0
- phpunit/phpunit: ^9.4
- refugis/doctrine-extra: ^2.1 || ^3.0
- refugis/elastica-odm: 2.x-dev
- roave/security-advisories: dev-master
- solido/php-coding-standards: dev-master
- solido/query-language: dev-master
- solido/security-policy-checker: dev-master
- symfony/browser-kit: ^5.4 || ^6.0 || ^7.0
- symfony/cache: ^5.4 || ^6.0 || ^7.0
- symfony/flex: ^2.0
- symfony/framework-bundle: ^5.4 || ^6.0 || ^7.0
- symfony/property-access: ^5.4 || ^6.0 || ^7.0
- symfony/translation: ^5.4 || ^6.0 || ^7.0
- symfony/validator: ^5.4 || ^6.0 || ^7.0
This package is auto-updated.
Last update: 2024-09-22 14:40:39 UTC
README
此包包含一些常见于各种 solido 套件包的测试工具。
功能测试
JsonResponseTrait
提供断言以检查返回 JSON 的内容和深层属性。响应必须由静态 getResponse
方法提供,并且必须是 Symfony\Component\HttpFoundation\Response
的实例。
属性路径
此特质中的断言允许通过将属性路径传递给断言方法来检查返回 JSON 的深层属性。
点(.
)用于访问对象属性,而方括号([]
)用于访问数组索引。
示例:user.emails[1]
应返回 user
对象的 emails
属性的第二个元素。
可以使用特殊属性路径 .
来指示响应中包含的整个 JSON 对象或数组。
断言
assertJsonResponse(string $message = '')
断言响应包含 JSON 且包含包含 application/json
的 Content-Type
标头。如果响应内容无法解码,断言将失败。
assertJsonResponsePropertiesExist(array $expected, string $message = '')
断言 JSON 响应包含 $expected
数组中的所有属性。属性由属性路径指定。
assertJsonResponsePropertyExists(string $propertyPath, string $message = '')
断言响应对象中存在一个属性路径。
assertJsonResponsePropertyDoesNotExist(string $propertyPath, string $message = '')
断言响应对象中不存在一个属性路径。
assertJsonResponsePropertyEquals($expected, string $propertyPath, string $message = '')
断言属性路径中的值等于 $expected
值。使用 PHPUnit IsEqual
约束来检查值相等。
assertJsonResponsePropertyNotEquals($expected, string $propertyPath, string $message = '')
断言属性路径中的值不等于 $expected
值。
assertJsonResponsePropertyIsType(string $expected, string $propertyPath, string $message = '')
断言属性路径中的值是指定的类型。类型可以是完全限定名(FQCN)或内置类型(数组、布尔值、浮点数、整数、null、对象、资源、字符串、标量、可调用)。使用 PHPUnit IsType
约束来检查属性类型。
assertJsonResponsePropertyIsArray(string $propertyPath, string $message = '')
短句法 assertJsonResponsePropertyIsType('array', $propertyPath, $message)
assertJsonResponsePropertyCount(int $expected, string $propertyPath, string $message = '')
断言属性路径中的值是可计数的,并且其计数等于 $expected
。
assertJsonResponsePropertyContains($expected, string $propertyPath, string $message = '')
断言特定的响应属性包含预期的值。
示例
["Hello", "world", "!"]
包含 "world"[{one: "Hello"}]
包含{ one: 'Hello' }
assertJsonResponsePropertyNotContains($unexpected, string $propertyPath, string $message = '')
断言特定的响应属性不包含预期的值。
assertJsonResponsePropertyContainsString(string $expected, string $propertyPath, string $message = '')
断言属性是字符串且包含给定的值。
ResponseStatusTrait
提供断言以检查由静态 getResponse
方法检索的 Response
对象的状态码。
assertResponseIs(int $expectedCode, string $message = '')
断言响应代码恰好是传递给 $expectedCode
的那个。
简写断言
assertResponseIsOk(string $message = '')
- 期望状态码为 200assertResponseIsCreated(string $message = '')
- 期望状态码为 201assertResponseIsAccepted(string $message = '')
- 期望状态码为 202assertResponseIsNoContent(string $message = '')
- 期望状态码为 204assertResponseIsBadRequest(string $message = '')
- 期望状态码为 400assertResponseIsUnauthorized(string $message = '')
- 期望状态码为 401assertResponseIsPaymentRequired(string $message = '')
- 期望状态码为 402assertResponseIsForbidden(string $message = '')
- 期望状态码为 403assertResponseIsNotFound(string $message = '')
- 期望状态码为 404assertResponseIsMethodNotAllowed(string $message = '')
- 期望状态码为 405assertResponseIsPreconditionFailed(string $message = '')
- 期望状态码为 412assertResponseIsUnprocessableEntity(string $message = '')
- 期望状态码为 422
检查多个状态码的断言
assertResponseIsRedirect(string $message = '')
- 期望状态码为 3xxassertResponseIsNotRedirect(string $message = '')
- 期望状态码不是 3xxassertResponseIsSuccessful(string $message = '')
- 期望状态码为 2xxassertResponseIsNotSuccessful(string $message = '')
- 期望状态码不是 2xx
FunctionalTestTrait
提供方便的方法在 Symfony WebTestCase
上执行请求。包括 ResponseStatusTrait
和 JsonResponseTrait
。
Doctrine ORM
EntityManagerTrait
在模拟的 DBAL 连接上提供 EntityManager 实例。
对测试原始 SQL 组成和结果活化很有用。
onEntityManagerCreated 方法可以在创建实体管理器之后立即用于自定义实体管理器实例(或加载/注入元数据)。
MockPlatform
EntityManagerTrait 的虚拟 DBAL 平台。
Doctrine Mongo ODM
DocumentManagerTrait
在模拟的 mongo 客户端上提供 DocumentManager 实例。
Elastica ODM
DocumentManagerTrait
提供 elastica 的 DocumentManager 实例。