2015-12-16 163 views
1

哪種方式是更好地做測試在Symfony2的RESTful應用程序或任何其他應用程序。Symfony2的RESTful應用程序 - 測試

例子: 我想測試PostController,其中包含動作:getPostsAction()getPostAction()putPostAction()postPostAction()deletePostAction()

所以我創建class PostControllerTest

問題是:

a)我應該爲每個動作創建單獨的測試嗎?前 - 測試更新:

  • 第一負載從固定崗位
  • 的這一個獲取ID添加帖子
  • 更新這個帖子通過[email protected]
  • 檢查更新結果與實體管理器

b)或者在一次測試中測試幾個動作(每個通過控制器)?例如:

  • 第一個測試創建
  • 下一個上市(預計後加入)
  • 更新
  • 上市(預計更新後)
  • 刪除
  • 上市(預計0行)。

我認爲第一個選項是好的,因爲我在一次測試中只測試一個控制器動作。我完全知道我想測試什麼。 但在第二種情況下,我可以更快地做測試,不需要使用燈具和實體管理器。

哪種方式會更好,爲什麼?

回答

1

我不能肯定地說什麼是最適合你的解決方案,但我認爲一個好的想法是讓它像你說的更多的功能。 你可以讓你的測試遵循流程,如:

  • 創建用戶
  • 更新用戶
  • 刪除用戶

製作一個完整的週期,不留垃圾數據。

我有一個開源項目,我做的正是這樣的,我也使用一些特質來幫助我創建對象和驗證從我的REST調用響應。 您可以在這裏看到一個真正的測試:https://github.com/renatomefidf/sammui/blob/master/src/Renatomefi/TranslateBundle/Tests/Controller/ManageControllerTest.php

通過使用來自phpunit的@depends註釋,您可以確定流程並確保您有測試的邏輯路徑。

我希望這可以幫助你,如果你有更多的問題,讓我知道!