3

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()]);
    }
}

しかし、それは非常に大きくなる可能性があり、時間の経過とともにますます複雑になり、そのロジックのテストが必要になる可能性さえあります! (はい、冗談です)

ありがとう。

4

1 に答える 1