Symfony2 プロジェクトのすべてのドクトリン エンティティで単体テストを行います。クラス UserTest でセッター/ゲッターをテストし、クラス UserDbTest で db 永続性を使用してセッター/ゲッターをテストします。すべてのファイルはEntity
テスト フォルダーの下のフォルダーにあり、両方をテストすることをお勧めします。 DBクラス?
アドバイスありがとうございます!
Symfony2 プロジェクトのすべてのドクトリン エンティティで単体テストを行います。クラス UserTest でセッター/ゲッターをテストし、クラス UserDbTest で db 永続性を使用してセッター/ゲッターをテストします。すべてのファイルはEntity
テスト フォルダーの下のフォルダーにあり、両方をテストすることをお勧めします。 DBクラス?
アドバイスありがとうございます!
クラスにカスタム データベース ロジック (持つべきではない) がないEntity
場合は、単体テストと機能テストを作成する必要はありません。Doctrine はテストされています。つまり、persist
/flush
が正しく動作することが保証されており、これらのテストを繰り返す必要はありません。
ただし、たとえば、クエリが正しく機能するかどうかをテストしたい場合は、個人的にXYManager
クラス (XY
はエンティティの名前) を持っており、そこにすべてのカスタム データベース ロジック (およびさらなる抽象化) を配置します。私のアプローチは FOSUserBundle に触発されました ( UserManagerを参照してください)。
私のプロジェクトではEntity
、クラスとEntityManger
クラスの両方Entity
がバンドルのフォルダーにあり、これらのクラスのテストはTests/Entity
フォルダーにあります。機能テストは単体テストよりもはるかに時間がかかるため、@group
PHPUnit の注釈を使用してそれらを分離します。データベースを必要とせず、データベースを必要と@group unit
しないすべてのテストと、データベースを必要とするすべてのテストに追加します。WebTestCase
@group functional
WebTestCase
私ができる単体テストだけを実行したい場合
phpunit -c app/ --group unit`
と
phpunit -c app/ --group functional
機能テストのみを実行します。
phpunit -c app/
機能テストと単体テストの両方を実行します。