My functional test file
<?php
namespace api\tests;
use api\tests\FunctionalTester;
use Yii;
class ExampleCest
{
public function _before(FunctionalTester $I)
{
}
public function _after(FunctionalTester $I)
{
}
// tests
public function tryToTest(FunctionalTester $I)
{
$I->sendGET('example/test2');
$I->seeResponseCodeIs(200); // Unauthorized
$I->seeResponseContains('test2');
}
}
I tried 2 different functional.suite.yml files to run the test:
// 1. functional.suite.yml, test run successfully:
actor: FunctionalTester
modules:
enabled:
- REST:
url: http://api.xxxxx.local/v1/
depends: PhpBrowser
part: Json
- \api\tests\Helper\Functional
// 2. functional.suite.yml, test failed without setting defaultRoute in Yii configuration file, but succeed if I set `'defaultRoute' => 'v1/example/test2',`:
actor: FunctionalTester
modules:
enabled:
- REST:
url: v1/
depends: Yii2
part: Json
- \api\tests\Helper\Functional
The error message when failed:
ExampleCest: Try to test
Signature: api\tests\ExampleCest:tryToTest
Test: tests/functional/ExampleCest.php:tryToTest
Scenario --
I send get "example/test2"
[Request] GET v1/example/test2
[Request Headers] []
[yii\web\HttpException:404] 'yii\\base\\InvalidRouteException: Unable to resolve the request "". in /Applications/MAMP/htdocs/gaea/vendor/yiisoft/yii2/base/Module.php:537
- Question 1: About the above 2 functional.suite.yml files, which is the right way to test rest api and why?
- Question 2: I have no idea why the 2nd functional.suite.yml file could be faied, since I can get right response in the browser from http://localhost/MYPROJECT/api/web/index.php?r=v1/example/test2.
My environment: Codeception: v2.3.8 Yii: v2.0.14 PHP: v7.0.26
Aucun commentaire:
Enregistrer un commentaire