2016-10-03 25 views
0

我正在爲捐款表單編寫一些驗收測試。我正在使用Codeception。對於這個例子的目的,讓我們說,捐贈的形式有3個部分組成:如果驗收測試有不同的用戶選擇並且您想要測試其中的每個選項,該怎麼辦

  1. 輸入您的個人信息
  2. 中輸入信用卡和直接傳輸
  3. 提交和接收電子郵件確認

對於驗收測試,我想測試整個過程 - 信用卡和直接轉賬。步驟1和步驟3在兩個捐贈過程中基本相同,但是 - 顯然 - 您不能自行運行第二步(捐贈表單不會在沒有第1步的情況下提交)。

所以我想知道,在這種情況下,寫出兩個測試(例如canDonateWithCreditCard()canDonateWithDirectTransfer())這兩個測試過程的所有三個部分都會是「正常的」嗎?即使這部分測試了同樣的事情兩次?

如果不是,那麼最好的方法是什麼?

回答

1

在我的工作中,這是完全可以接受的,我們有一個相當大的自動化套件,其中多個相同的頁面被執行多次,因爲類似於上面概述的場景。

我會提到的唯一警告是在構建測試時(我不知道代碼是如何工作的),但是使用沿着頁面對象模型的線(http://martinfowler.com/bliki/PageObject.html)的東西來構建測試,這將意味着即使您有多個可能實現相同場景的測試,每個測試都沒有自己的這些步驟的實現。

+2

http://codeception.com/docs/06-ReusingTestCode#StepObjects – Naktibalda

1

這取決於你的方法。 1.您可以創建兩個不同的測試用例來執行該操作。 2.您可以在測試中有一個邏輯將傳輸模式作爲參數傳遞給方法並相應地執行活動。 使用Page對象模型封裝每個頁面類中的所有操作並避免冗餘總是理想的選擇。 如果信用卡和直接轉移操作都導航到新頁面,請根據傳遞的參數創建頁面的新對象,然後調用該方法執行傳輸操作。 一個簡單的頁面對象類可以像這樣創建: http://testautomationlove.blogspot.in/2016/02/page-object-design-pattern.html

相關問題