API を開発していますが、いくつかのテストケースを書くのに問題があります。すべてのエンティティをテストするための一般的なテストケースのグループを既に作成しています。これらには、作成、変更、削除などの一般的な操作が含まれます。
/**
* @dataProvider provideCreateData
* @depends LoginTest::testLogin
*/
public function testCreate
/**
* @dataProvider provideModifyData
* @depends testCreate
*/
function testModify
データプロバイダーは、API エンティティのリストとそれぞれの属性を提供します。テストは、将来の変更がある場合にテストをメインにすることなく、すべてのエンティティを動的にテストします。
上記は現在正常に動作しますが、一般的なパターンに従わない検索関数など、ハードコードされている他の必要なテストを統合するのに問題があります。明らかに、既存のエンティティなしで検索機能をテストすることはできません。そのため、作成テストの後に検索テストを実行する必要がありますが、これには問題があります。私は使用してみました:
/**
* @depends GeneralTest::testCreate
*/
public function testFind() {}
これは機能しません。テストは実行されず、代わりに明らかな理由もなくスキップされます。ただし、依存関係を削除するとテストが実行されますが、データベースにエンティティが存在することを保証できなくなります。
明らかな何かが欠けているように感じます。または、重要な概念を誤解している可能性があります。