#php #codeception
#php #codeception
Вопрос:
Я в начале своего приключения Codeception. Я столкнулся с проблемой назначения метода assertEquals(), хотя я его объявил use PHPUnitFrameworkAssert;
Проверка кода:
<?php declare(strict_types=1);
namespace ProductTestApi;
use ProductApiTester;
use CodeceptionUtilHttpCode;
use PHPUnitFrameworkAssert;
public function CreateProduct(ApiTester $I)
{
$I->sendPost('/api/product/');
$I->seeResponseCodeIs(HttpCode::CREATED);
$responsePost = $I->grabDataFromResponseByJsonPath('$..product');
$I-$this->assertEquals(4,strlen((string)$responsePost));
$I->seeResponseContainsJson(
[
'category' => 'main',
'product' => 'fish',
]
);
}
}
Я получаю сообщение об ошибке:
api/CreateProductCest.php:createProduct
[Error] Call to undefined method ProductTestApiCreateProductCest::assertEquals()
Scenario Steps:
3. $I->grabDataFromResponseByJsonPath("$..product") at api/CreateProductCest.php:42
2. $I->seeResponseCodeIs(201) at api/CreateProductCest.php:41
1. $I->sendPost("/api/product/") at api/CreateProductCest.php:40
#1 /product-service/modules/Product/tests/api/CreateProductCest.php:43
#2 ProductTestApiCreateProductCest->createProduct
Artifacts:
Body: {"id":3,"product":"fish","category":"main"}
Ответ №1:
$this->assertEquals
недоступен в формате Cest, вы должны включить модуль Asserts в файле конфигурации пакета, а затем использовать $I->assertEquals
.
api.suite.yaml:
actor: ApiTester
modules:
enabled:
- Asserts
- REST:
depends: PhpBrowser