我在Windows 10上将IntelliJ Ultimate 2019.1与PHP插件v191.6183.95和Codeception插件v191.5849.22一起使用,我将其配置为通过CLI解释器PHP 7.1.4使用PHP语言级别7.1。使用Codeception 2.5.5版。
我使用composer安装了Codeception,但由于无法使用该可执行文件,因此我也下载了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建议功能?
现在可以了,我必须添加两个参数。
$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
我现在了解到,我创建了一个启用了REST且使用PhpBrowser的套件。但是当我想使用PhpBrowser的不同功能时,还必须在套件的yml文件中启用它
actor: ApiTester
modules:
enabled:
- REST:
url: https://<API's URL>/
depends: PhpBrowser
- PhpBrowser:
url: https://<OAuth login URL>/