docler-labs/codeception-slim-module

Slim 框架的 Codeception 模块。

4.2.0 2024-03-15 22:16 UTC

This package is auto-updated.

Last update: 2024-09-13 13:51:18 UTC


README

Build Status PHPStan Level

此模块允许您在无需 HTTP 请求的情况下,在 Slim 4 微型框架 内运行功能测试,因此测试将更快,调试也将更简单。

灵感来源于 herloct/codeception-slim-module 库。

安装

最小要求

  • php: ^8.0
  • slim/slim: ^4.7
  • codeception/codeception: ^5.0

如果您不了解 Codeception,请首先查看 快速入门指南

如果您已经在您的 Slim 应用程序中安装了 Codeception,您可以使用单个 composer 命令添加 codeception-slim-module。

composer require --dev docler-labs/codeception-slim-module

为了支持 PHP 7,请使用 docler-labs/codeception-slim-module:^2.0 版本

composer require --dev docler-labs/codeception-slim-module "^2.0"

如果您使用 Slim v3,请使用库的先前版本

composer require --dev docler-labs/codeception-slim-module "^1.0"

配置

示例(《test/suite/functional.suite.yml》)

modules:
  enabled:
    - REST:
        depends: DoclerLabs\CodeceptionSlimModule\Module\Slim

  config:
    DoclerLabs\CodeceptionSlimModule\Module\Slim:
      application: path/to/application.php

application 属性是返回您的 Slim\App 实例的文件的相对路径。以下是 application.php 的最小内容

require __DIR__ . '/vendor/autoload.php';

use Slim\Factory\AppFactory;

$app = AppFactory::create();

// Add routes and middlewares here.

return $app;

测试您的 API 端点

class UserCest
{
    public function getUserReturnsWithEmail(FunctionalTester $I): void
    {
        $I->haveHttpHeader('Content-Type', 'application/json');

        $I->sendGET('/users/John');

        $I->seeResponseCodeIs(200);
        $I->seeResponseContainsJson(
            [
                'email' => 'john.doe@example.com',
            ]
        );
    }
}