macpaw/behat-api-context

Behat Context 用于测试 Symfony Api

安装次数: 107 270

依赖者: 0

建议者: 0

安全性: 0

星标: 5

关注者: 4

分支: 2

开放问题: 0

类型:symfony-bundle

v1.3.0 2024-08-29 08:48 UTC

README

安装

步骤 1: 下载 Bundle

打开命令行,进入您的项目目录并执行

使用 Symfony Flex 的应用程序 进行中

$ composer require --dev macpaw/behat-api-context

不使用 Symfony Flex 的应用程序

打开命令行,进入您的项目目录并执行以下命令以下载此 Bundle 的最新稳定版本

$ composer require --dev macpaw/behat-api-context

此命令要求您已全局安装 Composer,如 Composer 文档中的安装章节中所述。

然后,通过将 Bundle 添加到项目 app/AppKernel.php 文件中注册的 Bundle 列表来启用该 Bundle

<?php
// app/AppKernel.php

// ...
class AppKernel extends Kernel
{
    public function registerBundles()
    {
        $bundles = array(
            // ...
            BehatApiContext\BehatApiContextBundle::class => ['test' => true],
        );

        // ...
    }

    // ...
}

步骤 2: 配置 Behat

转到 behat.yml

# ...
  contexts:
    - BehatApiContext\Context\ApiContext
# ...

如果您想使用 ORM 上下文,请将其添加到 behat.yml

# ...
  contexts:
    - BehatApiContext\Context\ORMContext 
# ...

用法

可运行请求参数

主要用例:当测试需要使用当前日期时。例如,在某个 testCaseName.feature 中的静态数据而不是这样的数据

"""
{
    "dateTo": 1680360081,
    "dateFrom": 1680532881,
}
"""

可以使用,例如

"""
{
    "dateTo": "<(new DateTimeImmutable())->add(new DateInterval('P6D'))->getTimeStamp()>",
    "dateFrom": "<(new DateTimeImmutable())->add(new DateInterval('P2D'))->getTimeStamp()>",
}
"""

为此,必须满足几个条件

  • 可运行代码必须是一个字符串,并放置在 <>
  • 不应在开头添加 return 关键字,否则将获得 RuntimeException
  • 不应在结尾添加 ; 关键字,否则将获得 RuntimeException
  • 不应使用返回 null 的代码,否则将获得 RuntimeException