Кодовый вызов неопределенного метода assertEquals

#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