2011-09-30 202 views
1

在我的web應用程序中,有多個具有常見webElements的屏幕。我想斷言所有這些常見元素都存在於每個頁面上。但是我不想把所有的斷言放到一個單一的效用函數中,如果一個斷言失敗,它會在一半的時間中止。我希望爲每個斷言提供單獨的測試用例,並在多個測試類(每個頁面一個測試類)中運行該測試集。如何在多個測試類中運行一組junit測試?

我讀到繼承是一個壞主意,因爲那麼你必須深入到比即時測試類更深的位置去查看所有正在運行的測試。但同時,我不想維護多個頁面上通用的測試副本。

+0

你應該做什麼適合你和你的團隊。 –

回答

1

相同的規則適用於適用於其餘開發的測試開發,您可以執行您和您的團隊發現的最容易理解的內容。您有以下選擇:

  1. 繼承:在父類中定義測試。我使用了JUnit測試的繼承,包括父類中的測試。這工作和運作良好,主要優點是它保存了重複的代碼。缺點:你必須在多個地方看你的測試。當您在Eclipse中的Junit視圖中雙擊測試名稱時,它會將您帶到父類,這有時令人困惑。

  2. 有一個專門用於測試頁面常用功能的類,可以稱之爲PageTest。 PageTest會使用@Parameterized來測試所有的頁面。優點:所有常見測試都是集中的。缺點是,如果添加頁面,則需要將頁面添加到列表中。如果可能的話,你可以避免使用反射來將東西添加到列表中。我們有一組測試,它在類路徑中搜索從某個類繼承的任何類(本例中爲struts Action),並在該類上運行一些測試。

在這兩個選項中,我會選擇前者,因爲它的工作量較少;單個頁面的所有內容都集中在一個地方,而且您從不「忘記」測試常見元素。但這是你的項目,做你的工作。