2011-06-15 35 views
5

我在使用Selenium和C#編寫VS 2010中的一些單元測試。我有幾個測試用例。例如,我的一些測試案例是:需要一些想法來編寫自動化測試

  1. 推出網站:http://localhost:8080。驗證登錄頁面是否存在。輸入用戶名和密碼,然後登錄。

  2. 檢查以查看是否存在搜索選項卡。點擊搜索標籤。驗證標籤搜索圖書,搜索圖片和搜索網頁都存在。

  3. 點擊搜索書。輸入「C-Sharp for Dummies」。點擊搜索。確認返回適當的結果。

現在,我的問題是:是否有一個更好的主意每個上述測試用例創建單獨的類或者是它更好地將它們合併到一個類,只是有不同的方法呢?

這三個測試用例都是相互關聯的。我的意思是,執行#2需要#1先完成,然後#3需要#2先完成。如果我製作單獨的課程,我相信我需要在課程#2中的#1中調用方法,並在課程#3中調用#1和#2中的方法。

我不太確定這是一個好主意。提前致謝。

+5

只是挑選那些將是集成測試,而不是單元測試 – Davy8 2011-06-15 20:38:48

回答

1

如果您使用類似NUnit的東西來控制您的硒測試,那麼點1可以在SetUp之內,因爲我們可以假設所有(或大部分)測試都需要登錄才能執行任何操作。由於所有的測試都會失敗,如果失敗了,它並不需要獨立測試。

如果考慮到點2和點3之間的相互作用,會有一些交叉,並且存在一些獨立的測試。

如果考慮交叉測試(點擊搜索圖書鏈接),點3依賴於點2在運行之前運行,因此如果測試2失敗,那麼測試3將總是失敗。

在第2點你正在測試三個鏈接出現,但在測試3中你只點擊其中的一個,因此第2點可能會失敗,但第3點成功,因此它們應該是單獨的測試,然而第3點並不取決於完全靠點2

個人,你有兩個選擇,如果你也要去考「搜索圖片」和「搜索網絡」,那麼你不應該有2點在所有。鏈接的可見性和鏈接的點擊聲明都應該融合到第3點。

如果您不打算測試「搜索圖片」和「搜索網頁」,那麼可以點2 。然而,測試3不應該調用點2的方法,因爲它測試點3不關心的額外功能。它應該假定「搜索書籍」鏈接在那裏,並單獨點擊它,而不是第2點。

+0

感謝您分享您的想法,並在如此精細的細節中解釋您的觀點。我想我會結合#2和#3。 – Maya 2011-06-16 15:20:27

1

如果測試是相關的,我將它們保存在一個文件中,但這是假設下,你有多少測試有,因爲我不希望只有一個文件,噸的測試,所以我會在邏輯將相關測試放在單獨的文件中。如果你現在沒有太多的測試,我不會覺得太驚訝。

您也可以嘗試WatiN作爲Selenium的替代品。

相關問題