codeception

codeception symfony functional Функциональные тесты, Получение клиента (client)- заметки, mock

Наброски того, как можно организовать функциональное тестирование API без браузера/сервера

Проверялось на: Symfony 6, Symfony 7, Codeception 5

Получение клиента

См. отдельную заметку о получении клиента

Использование клиента - отправка запросов

Используя клиент можно авторизоваться напр. так (в т.ч. получить куку):

codeception assertArrayHasKey() must be an array or ArrayAccess Ошибка

PHPUnit\Framework\Assert::assertArrayHasKey() must be an array or ArrayAccess

codeception Вспомогательные пользовательские классы для тестов

Вы всегда можете положить свои файлы рядом с классом теста (если они не общие), а потом прямо в классе Cest-а сделать require (таким образом файл может содержать любой неймспэйс и автозагрузка не понадобится), например для цеста tests/unit/Application/ContainerTestCest.php:

php composer autoload files Не работает автозагрузка

Для проверки, после запуска скрипта, в котором не получается загрузить файл целиком гляньте сгенерированный композером файл:

vendor/composer/autoload_files.php

-- там лежит то, что он грузил ориентируясь на composer.json

codeception Suite unit was not loaded Ошибка

Suite unit was not loaded

Решение: выполните команду bootstrap

codeception Пользовательские (свои, нестандартные) параметры в конфиге yml и их переопределение через параметры команды

В codeception.yml (лежит в корне вашего проекта), добавим новый пользовательский параметр init_style, получим что-то вроде:

namespace: App\Tests
paths:
    tests: tests
    output: tests/_output
    data: tests/_data
    support: tests/_support
    envs: tests/_envs
actor_suffix: Tester
extensions:
    enabled:
        - Codeception\Extension\RunFailed
params:
    - .env.test

init_style: "full"

Далее внутри Cest-а использовать этот параметр можно как-то так:

xdebug netbeans Отладка в терминале (консоли), отладка тестов

Предположим, что вы уже умеете настраивать запуск xdebug через локальный сервер.

В нашем случае хотелось посмотреть поотлаживать код, который запускался в режиме командной строки (автотесты с помощью codeception),

моя исходная команда в папке проекта была (в терминале):

Pages

Subscribe to RSS - codeception