2016-04-10 61 views
0

所以我給了這樣的場景和功能:登錄電子測試與貝哈特

Feature: User registration 

    As an Unregistered User I want to be able to register to the system so that I can use it. 

    Scenario: User successfully registers 
    Given I am unregistered user 
    When I register successfully into the system 
    Then I should become a registered user 
    And I should be logged on to the system 

我在想怎麼寫測試。我斷言什麼。讓我們談談我應該登錄到系統。我之前已經使用phpunit和mocker進行了一些測試。

還沒有確切告知如何驗證該用戶是否已登錄。我是否可以自由驗證? 喜歡測試用戶是否看到一些帶有消息的div - 「您已登錄」? 然後在編寫測試之後 - 實現該功能?另一種情況可能是該用戶將被重定向到另一個功能頁面。我不知道哪一個。如果我願意,我可以寫測試檢查是用戶重定向到該頁面。

此外,「鑑於我是未註冊的用戶」部分 - 它在測試中的外觀如何?我想會有一些會話,如果在這個測試之前的測試是以登錄用戶的身份運行的,那麼在這個測試時 - 它也會被登錄。一個想法來了 - 呼叫註銷鏈接並且每次都檢查響應200。這將確保用戶未註冊。

或者我想我應該與業主討論並詢問登錄後應該發生什麼。

也許應該修改場景,以便在用戶登錄時顯示它的樣子。 這可能是寫這些情景的人沒有想到它,我明白很難去想這些細節。只有當你開始執行代碼時,關於細節的問題纔會出現。

如果我們比較從這個網站的例子:

http://www.netgenlabs.com/Blog/How-to-test-with-Behat

然後我清楚沒有什麼需要在測試中進行檢查哪些用戶的情況下看到的。例如。

Scenario: Open customer registration page 
     Given I am on homepage 
     When I follow "Customer registration" 
     Then I should be at "/customer-registration" 
     And I should see "Welcome to customer registration page!" 
+0

取決於您想要測試用於登錄/登錄的UI界面,還是隻想測試沒有UI的邏輯? – gvf

+0

我猜UI。我不是說JavaScript。但是,只有用戶輸入他的數據並登錄後,我纔會與編寫這些規範的人交談,他說它不好指定按鈕和字段的確切文本,因爲如果我們更改字段,規範也必須更改。 –

回答

0

第一種情況就是它應該是什麼樣子,第二種情況不應該如何。

小黃瓜語言不是一種編程語言,其目的是涵蓋商業示例。

如何繼續實施每個步驟只取決於您和您的應用程序。實施還取決於您用於測試的級別。如果你的應用程序會改變,但功能將仍然相同,那麼你不應該改變功能文​​件中的任何東西。