代码实例是基于YII2框架使用的。
下面我来进行如何使用。
composer安装
下面这几个插件都可以安装。
不过建议安装在:dev
composer require codeception/codeception
composer require codeception/verify
composer require codeception/specify
我安装的实例:
"require-dev": {
"yiisoft/yii2-faker": "~2.0.0",
"codeception/codeception": "~3.0.0",
"codeception/verify": "~1.0.0",
"codeception/specify": "~1.1",
"phpunit/phpunit": "~7.5.10",
"symfony/browser-kit": ">=2.7 <=4.2.4"
},
安装完毕之后,我们继续下面的工作。执行:
这样会创建一个文件夹test跟codeception.yml
windows:php vendor\codeception\codeception\codecept bootstrap
linux: vendor\bin\codecept bootstrap
执行完毕后,我们需要进行修改文件了,
这是我自己的文件。
actor: Tester
paths:
tests: tests
log: tests/_output
data: tests/_data
helpers: tests/_support
settings:
bootstrap: _bootstrap.php
memory_limit: 1024M
colors: true
modules:
config:
Yii2:
configFile: 'config/codeception-local.php'
然后在执行一下,在test文件下创建另一个文件api.suite.yml
linux:vendor\bin\codecept generate:suite api
windwos:php vendor\codeception\codeception\codecept generate:suite api
进行修改这个文件
actor: ApiTester
modules:
enabled:
- enabled: [PhpBrowser, REST]
- REST:
depends: PhpBrowser
url: 你的域名
part: Json
- Yii2:
part: [orm, fixtures]
开进构造
linux: vendor\bin\codecept generate:cest api CreateUser
windows: php vendor\codeception\codeception\codecept generate:cest api CreateUser
写测试
// tests文件
public function tryToTest(ApiTester $I)
{
$I->sendPOST(';你的访问地址,['page'=>1,'ter_account'=>1]);
$I->seeResponseCodeIs(\Codeception\Util\HttpCode::OK); // 200
$I->seeResponseIsJson();
// $I->seeResponseContains('"code":1');
$I -> seeResponseContainsJson( ['code'=>1] );
// $I ->dontSeeResponseContainsJson(["ter_account"=>"16678786767"]);
}
我自己写的:我的是有加密跟token的。
public function _before(ApiTester $I)
{
$I->haveHttpHeader('Signature', Api::sign());
}
public function tryToTest(ApiTester $I)
{
$I->sendGET('/product/estates/1/share');
echo PHP_EOL. $I->grabResponse() . PHP_EOL;
}
最好进行运行测试:
linux: vendor\bin\codecept run api
windows: php vendor\codeception\codeception\codecept run api
# api后面可指定文件名,不加会执行所有测试文件
有疑问可以评论,我会及时回复。









网友评论