2012-09-07 48 views
1

我在Symfony2項目中的所有學說實體中做了一些單元測試。我在一個類UserTest中測試setter/getter,並且在類UserDbTest中使用db persistance設置/ getter,所有文件都在Entity測試文件夾下的文件夾 測試這兩個文件是否合適很好,以及什麼是最好的地方把Db班?在symfony2中放置phpunit數據庫測試的最佳地點

Thx您的建議!

回答

6

如果您在Entity類中沒有自定義數據庫邏輯(您不應該擁有這些邏輯),則不必創建單元和功能測試。學說被測試,即確保persist/flush正常工作,您不必重複這些測試。如果你想測試,例如,如果你的查詢工作正常,我個人有一個XYManager類(其中XY是實體的名稱),其中我把所有的自定義數據庫邏輯(和進一步抽象)放入它。我的方法受到FOSUserBundle的啓發(請參閱他們的UserManager)。

在我的項目無論是EntityEntityManger類在包的Entity文件夾,併爲這些類的測試是在Tests/Entity文件夾中。由於功能測試比單元測試花費的時間要長很多,我使用PHPUnit的註釋將它們分開。我將@group unit添加到所有不需要數據庫的測試,並且不是所有需要數據庫的測試都是WebTestCase@group functional,或者是WebTestCase

如果我只想執行單元測試,我可以做

phpunit -c app/ --group unit` 

phpunit -c app/ --group functional 

只會執行功能測試。

phpunit -c app/ 

將執行功能和單元測試。

+0

Thx for your answer – EAdel