vierge-noire/cakephp-behat-suite

行为驱动测试的测试套件。

v0.2.0 2020-10-16 20:07 UTC

This package is auto-updated.

Last update: 2024-09-20 18:39:15 UTC


README

这是一个针对行为驱动开发的 CakePHP 专用套件。

安装

适用于 CakePHP ^4.0

composer require --dev vierge-noire/cakephp-behat-suite "^0.2"

适用于 CakePHP ^3.8

composer require --dev vierge-noire/cakephp-behat-suite "^0.1"

设置

将此文件复制到您的应用程序主目录下,命名为 `behat.yml`

#behat.yml
default:
  autoload:
    '': '%paths.base%/tests/Behat'
  suites:
    app:
      paths:
        - '%paths.base%/tests/Behat/features'
      contexts:
        - CakephpBehatSuite\Context\BootstrapContext:
            bootstrap: '%paths.base%/tests/bootstrap.php'
        - Context\AppContext

behat.yml 文件相当于 PHPUnit 的 phpunit.xml 文件。%paths.base% 指向您的应用程序主目录。

一旦您的 behat.yml 文件创建完成,运行 vendor/bin/behat --init 以自动创建配置文件中定义的文件夹和上下文类。

您可以定义额外的套件,除了应用程序套件外,例如为您的插件。

重要:每个套件中都应该存在 CakephpBehatSuite\Context\BootstrapContext。参数 bootstrap: 应指向测试的 bootstrap.php 文件。

对于每个套件,您都必须在 path 键下指定您的功能位置。

该包提供由 CakephpBehatSuite\Context\BootstrapContext 定义的步骤集。

运行您的测试

命令 vendor/bin/behat 将根据 `behat.yml` 文件中定义的内容运行您的测试。

数据集工厂

该包使用了 CakePHP 数据集工厂插件。请确保您的工厂已制作并正常工作,以便使用本包。

您可以在以下位置找到该包及其文档 这里

BootstrapContext 类

CakephpBehatSuite\Context\BootstrapContext 包含了一系列步骤,以下将进行说明。

上下文将确保在每个场景之前清空测试数据库。

示例

功能

以下是您的 UsersController 的编辑操作集成示例

Feature: Users edit

  Background:
    Given I create 1 user with id 1
    And I am a user with a UsersGroups.Permissions name Users
    And I log in

  Scenario:
    When I get 'users/edit/1'
    Then the response is OK

# Edit a non existent user
  Scenario:
    When I get 'users/edit/2'
    Then the response triggers an error
    
# Edit an existing user
  Scenario:
    When I post 'users/edit/1' with data:
      | username  | email          |
      | foo       | foo@foo.foo    |
    Then I am redirected to 'users'
    And this user exists:
      | id  | username  | email          |
      | 1   | foo       | foo@foo.foo    |

behat.yml 与插件

此 behat 文件包含一个针对示例插件 MyCustomPlugin 的套件。对于每个套件,还添加了一个上下文。

#behat.yml
default:
  autoload:
    '': '%paths.base%/tests/Behat'
  suites:
    app:
      paths:
        - '%paths.base%/tests/Behat/features'
      contexts:
        - CakephpBehatSuite\Context\BootstrapContext:
            bootstrap: '%paths.base%/tests/bootstrap.php'
        - Context\AppContext
    my-custom-plugin:
      paths:
        - '%paths.base%/plugins/MyCustomPlugin/tests/Behat/features'
      contexts:
        - CakephpBehatSuite\Context\BootstrapContext:
            bootstrap: '%paths.base%/tests/bootstrap.php'
        - Context\TestPluginContext

使用迁移

充分利用 Phinx 迁移 以维护测试数据库的模式。这是可选的,但强烈推荐。

CakePHP Test Migrator 包 将帮助您非常简单地完成此操作。

许可证

CakePHPFixtureFactories 插件在 MIT 许可证 下提供。

版权所有 2020 Juan Pablo Ramirez 和 Nicolas Masson

在 The MIT 许可证下许可。文件的分发必须保留上述版权声明。

作者

  • Juan Pablo Ramirez
  • Nicolas Masson