Я использую IntelliJ Ultimate 2019.1 с плагином PHP v191.6183.95 и плагином Codeception v191.5849.22 в Windows 10. Я настроил его на использование уровня языка PHP 7.1 с интерпретатором CLI PHP 7.1.4.Использовать Codeception версии 2.5.5.
Я установил Codeception с помощью composer, но поскольку использование этого исполняемого файла не помогло, я также загрузил codeception.phar.После этого я смог выполнить php vendor/bin/codecept bootstrap
и php vendor/bin/codecept generate:suite api
для настройки проекта тестирования API.
Когда я начал писать тесты, IntelliJ не предлагает функции для этого объекта "$ I":
<?php
class GetUserInfoCest
{
public function _before(ApiTester $I)
{
}
// tests
public function tryToTest(ApiTester $I)
{
}
public function getUserInfoViaAPI(ApiTester $I)
{
$I->haveHttpHeader();
}
}
Когда я поднимаюсь по дереву зависимостей с помощью Ctrl-> left_click, я нигде не вижу этих функций.
Как я могу заставить IntelliJ предлагать функции?
Обновление 1
Теперь это работает, мне пришлось добавить оба параметра.
$I->haveHttpHeader('Cookie', 'mein_muenchen_backend_session=XXXXXXXX');
$I->sendGET('/api/v1/lists/login/userinfo');
$I->seeResponseIsJson();
Однако я не понимаю, как я использую PhpBrowser (https://codeception.com/docs/modules/PhpBrowser) функции там. Например,Я использовал $I->setCookie(..., ...)
, но Codeception сказал Call to undefined method ApiTester::setCookie
Обновление 2
Теперь я понимаю, что я создал пакет с включенным REST, который использует PhpBrowser. Но когда я хочу использовать другие функцииPhpBrowser, я также должен включить его в файле yml пакета
actor: ApiTester
modules:
enabled:
- REST:
url: https://<API's URL>/
depends: PhpBrowser
- PhpBrowser:
url: https://<OAuth login URL>/