interactive-solutions / zf-behat
Behat 的交互式解决方案扩展
Requires
- php: >=5.5.0
- behat/behat: ^3.4.0
- guzzlehttp/guzzle: ^6.3.0
Requires (Dev)
- phpunit/phpunit: ~4.8
- dev-master
- 1.4.0
- 1.3.3
- 1.3.2
- 1.3.1
- 1.3.0
- 1.2.0
- 1.1.4
- 1.1.3
- 1.1.2
- 1.1.1
- 1.1.0
- 1.0.13
- 1.0.12
- 1.0.11
- 1.0.10
- 1.0.9
- 1.0.8
- 1.0.7
- 1.0.6
- 1.0.5
- 1.0.4
- 1.0.3
- 1.0.2
- 1.0.1
- 1.0.0
- 0.3.1
- 0.0.2
- 0.0.1
- dev-develop
- dev-zf3
- dev-countable-check-type
- dev-refactor/api-client
- dev-increased-bernard-support
- dev-hydration-using-closure
- dev-additional-functionality
- dev-feature/bernard-task-assertions
- dev-add-entities-to-aliases
- dev-feature/allow-arrays-alias
- dev-feature/use-aliases
- dev-feature/existing-with-static
- dev-feature/aliases
This package is auto-updated.
Last update: 2024-08-27 20:58:07 UTC
README
描述
一组预定义的步骤定义,用于处理通过 Zend Framework 测试 REST API 的最常见情况。
设置
将其添加到您的 behat.yml
文件中,如下所示
default:
extensions:
InteractiveSolutions\ZfBehat:
# configurable parameters
此模块可配置的参数如下
config_file
- api 的自动加载配置文件路径(默认config/application.config.php
)。api_url
- api 的基本网址(默认http://localhost
)。mailcatcher_url
- 您的 mailcatcher 服务器网址(默认http://mailcatcher:1080
)。
在您的自动加载配置文件中启用模块 InteractiveSolutions\ZfBehat
。
可用上下文
该模块包含各种类型的测试步骤,如下所示。
请参阅每个上下文以获取更多信息.
ApiContext
此上下文包含各种 api 调用的步骤定义。
BernardContext
包含使用 bernard 运行后台任务的测试应用程序的基本步骤的上下文。
DbContext
管理 Doctrine 实体管理器。包含一个步骤,应在每个功能文件中作为后台运行(Given a clean database
)。此步骤会删除并重建整个数据库,在每个场景之前允许一个干净的数据库。
EntityFixtureContext
包含通过创建实体设置场景的各种步骤。
MailcatcherContext
使用指定的 mailcatcher_url
管理邮件测试。用于测试是否发送了激活电子邮件(和类似内容)。
ZfrOAuthContext
包含 zfr-oauth 认证/授权所需的步骤。
配置默认参数
将 interactive-solutions.zf-behat.global.php.dist
粘贴到您的配置中。
UserOptions
用于指定在 ZfrOAuthContext 中定义的步骤中用户的默认参数。
UserOptions::class => [ //The user entity class to use 'userEntityClass' => UserEntity::class, 'defaultUserProperties' => [ 'firstName' => 'First', 'lastName' => 'Last', // password field is automatically bcrypted when entity is generated 'password' => '12345', 'createdAt' => new DateTime(), ], ],
EntityOptions
用于指定通过 EntityFixtureContext 和 ApiContext 创建和管理实体的默认参数。
EntityOptions::class => [ // fill in the entity keys and their corresponding route/default values 'entities' => [ 'match' => [ // aliases are used to provide a better flow in your scenarios 'aliases' => [ 'matches', ], 'entity' => MatchEntity::class, 'route' => 'matches' 'defaultProperties' => [ 'type' => 'SinglePlayer', 'winner' => 1, 'winnerScore' => 1337, 'finishedAt' => new DateTime(), ] ] ] ]
关于 EntityOptions
的注意事项
- 路由将自动以
/
前缀,因此matches
变为/matches
- 别名用于为配置的实体创建别名
- defaultProperties 也用作发送 api 请求时的默认参数
在 TableNodes 或 PyStringNode 中使用别名
Given an existing "TYPE" created with static method "create" with alias "TYPE1" When I add a new "TYPE" with: """ { "clinicId": "%Alias:FieldName%" } """
如果别名存在,则将 %Alias:FieldName% 替换为别名实体的 FieldName
您还可以仅引用别名,如果是这样,它将使用实体的主键。
许可
版权 (c) 2016 Interactive Solutions Bodama AB
特此授予任何人免费获得此软件及其相关文档文件(“软件”)的副本的权利,用于在不受限制的情况下处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向提供软件的人员做上述事情,但受以下条件约束
上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。
本软件按“原样”提供,不提供任何形式的保证,无论是明示的、暗示的,包括但不限于适销性、特定用途适用性和非侵权性。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论该责任源于合同、侵权或其他原因,以及与软件或软件的使用或其他相关事宜。