问题描述
我正处于 Codeception 冒险的开始。
我在分配 assertEquals() 方法时遇到了问题,即使我声明了它
use PHPUnit\Framework\Assert;
代码测试:
<?PHP declare(strict_types=1);
namespace Product\TestApi;
use Product\ApiTester;
use Codeception\Util\HttpCode;
use PHPUnit\Framework\Assert;
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 Product\TestApi\CreateProductCest::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 Product\TestApi\CreateProductCest->createProduct
Artifacts:
Body: {"id":3,"product":"fish","category":"main"}
解决方法
$this->assertEquals
在 Cest 格式中不可用,您必须在套件配置文件中启用 Asserts 模块,然后使用 $I->assertEquals
。
api.suite.yaml:
actor: ApiTester
modules:
enabled:
- Asserts
- REST:
depends: PhpBrowser