2013-02-13 88 views
0

我想爲JBehave中的驗收測試編寫一個「常見」故事,只有當用戶不存在時纔會添加用戶。 「創造用戶」的故事本身就是一個驗收測試用例。我想用GivenStories舉例來說明它。在「modifyUser」,「deleteUser」等 - 但我不想在「createUser」故事想添加一個已經存在的用戶時出錯。JBehave - 如何編寫冪等性故事?

如何確保只有在需要時才執行「createUser」?我無法在JBehave中找到任何有關「有條件的故事」的解決方案。我不能把「創造用戶」的故事也寫成冪等的。

回答

1

這不是JBehave本身的問題 - 它不會在這個級別上處理。我猜你想有一個場景是這樣的:

Given user "John" exists with ID 1234 
When delete user request for ID 1234 was processed 
Then no user entry for ID 1234 should exist 

只有在綁定代碼給定的步驟中,您會檢查並在必要時由用戶創建(執行您的條件插入操作)。這是在您的Java代碼中處理的,而不是在驗收測試級別上處理的。它看起來像這樣:

@Given("Given user \"$userName\" exists with ID $userId") 
public void givenUserExistsWithId(String userName, int userId) 
{ 
    if (!persistence.existsUser(userId)) 
    { 
     persistence.createUser(userId, userName); 
    } 
} 

這樣的方式是乾淨的,代碼確保執行給定狀態後的預期狀態。