API テスト用に Codeception をセットアップしています。
私はCestクラスを持っています...
class ZooCest {
public function addingALionToZoo(ApiTester $I)
{
$I->sendPost('zoo/add_animal', ['animal_id' => $animalId]);
}
}
問題は、API をテストするためのデータをどこでどのように設定するかです。
前の例に従って、これを行うことができます。
class ZooCest {
public function addingALionToZoo(ApiTester $I)
{
$lion = new Animal('lion');
$lion->save();
$I->sendPost('zoo/add_animal', ['animal_id' => $lion->getId()]);
}
}
しかし、ビジネス ロジックが複雑になると、これは面倒になります。
サポートフォルダーにファクタライザーを配置できるので、次のようにします。
class ZooCest {
public function addingALionToZoo(ApiTester $I)
{
$lion = DataFactory::create('lion');
$I->sendPost('zoo/add_animal', ['animal_id' => $lion->getId()]);
}
}
しかし、それは非常に大きくなる可能性があり、時間の経過とともにますます複雑になり、そのロジックのテストが必要になる可能性さえあります! (はい、冗談です)
ありがとう。