1つの質問:phpunitはテストを実行する際に複数のデータプロバイダを使用できますか?複数のデータプロバイダをphpunitで使用することができます
たとえば、私はgetByIdというメソッドを持っていますが、そのために成功したテストケースと失敗したテストケースの両方を実行する必要があります。
成功したテストケースは、対応するレコードを返すことができることを意味します。失敗した場合、入力は無効と失敗の2つのカテゴリに分類されます。
無効は入力が有効でないことを意味し、失敗は入力が有効であるが、そのIDを持つ対応するレコードがないことを意味します。
ので、コードは次のようになります:
/**
* @dataProvider provideInvalidId
* @dataProvider provideFailedId
*/
public function testGetByIdUnsuccess($id)
{
$this->assertNull($this->model->getById($id));
}
しかし、それは最初のデータプロバイダが二番目を無視し、使用されていることが判明。このシナリオが一般的であるかどうかはわかりませんが、ここでは質問です。複数のデータプロバイダを使用できますか?そしてもしできれば、どうですか?
PS:複数のDataProviderを必要としない間は、同じ機能を提供するために、あなたのdataProvider配列にコメントを追加することができますhere
別のdataProvidersを使用すると、コードを読みやすくしているような状況になります(コードとテストケースが提供されたデータによってドキュメント化されている)。私は何がベストプラクティスになるのだろうか? – Pitt