此包的最新版本(1.4.0)没有提供许可信息。

Behat 的交互式解决方案扩展

安装: 2,242

依赖项: 0

建议者: 0

安全: 0

星级: 0

关注者: 4

分支: 0

开放问题: 3

类型:behat-extension


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 用于指定通过 EntityFixtureContextApiContext 创建和管理实体的默认参数。

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

特此授予任何人免费获得此软件及其相关文档文件(“软件”)的副本的权利,用于在不受限制的情况下处理软件,包括但不限于使用、复制、修改、合并、发布、分发、再许可和/或销售软件副本,并允许向提供软件的人员做上述事情,但受以下条件约束

上述版权声明和本许可声明应包含在软件的所有副本或主要部分中。

本软件按“原样”提供,不提供任何形式的保证,无论是明示的、暗示的,包括但不限于适销性、特定用途适用性和非侵权性。在任何情况下,作者或版权所有者均不对任何索赔、损害或其他责任承担责任,无论该责任源于合同、侵权或其他原因,以及与软件或软件的使用或其他相关事宜。