2011-06-06 90 views
2

我正在爲我的項目編寫測試,並且在單元測試之後,我現在編寫FunctionalTest的 。FunctionalTest在PlayFramework中的目標是什麼?

但是,在功能與硒測試的目標之間,我有點失落。

是功能測試都只是在這裏進行測試,如果,無論我送到 任何頁面(主要在POST),它應該返回我的期望(200,302, 404,500),或有更多? (如測試,如果返回的頁面是 一個我期待(如「登錄頁」?還是這個測試應該在硒?)

因爲到目前爲止,我的F檢驗只是與 assertStatus一堆功能對於每一個,我覺得這是一個有點用處。 我相信我可以做得更多,但不知道爲什麼。

你在你的功能測試考什麼?

回答

8

要回答你的問題,它是可能更容易看到彼此並排的所有三種類型的測試。單元測試 - 測試單個代碼單元。例如,如果我有一個Item類,它構成了電子商務網站的一部分,我將有大量的單元測試來測試Item類是否按預期工作。這可能包括一個測試來證明搜索函數返回符合特定條件的項目。

功能測試 - 爲了測試當單個單元彙集在一起​​,它們按預期一起工作。例如,爲了使搜索功能起作用,我們希望發送一個特定的REST URL來搜索一個項目,這將返回一個特定的響應。它會使用我們的控制器和模型類來執行代碼並實現完整的功能。

驗收測試 - 也被稱爲硒測試是一組更大的測試。這些測試用戶可能會遇到的情況,可能涵蓋許多功能測試,而這些測試又可能包含許多單元測試。這些更關注處理用戶旅程或場景,而不是單個功能。

至於在FunctionalTests中使用的斷言類型,我還通過在響應對象上使用getContent方法使用了assertFalseassertTrue

+0

好吧,如果我理解正確,功能測試非常簡單。只需測試預期的回報狀態。通過getContent和assertTrue/false,你測試了什麼?如果內容不是空的? – 2011-06-06 12:07:03

+0

我測試內容是否屬於某種類型。例如,我測試瞭如果返回1個項目,則內容包含'找到1項目',如果期望2個項目,則內容包含'找到2個項目',以確保複數工作。 – Codemwnci 2011-06-06 12:13:22

+0

這應該不是最適合硒測試? (這就是我迷失的地方:/) – 2011-06-06 12:14:00