2012-08-22 93 views
1

我想了解什麼時候應該通過BDD進行測試,如黃瓜/ specflow,以及何時應該直接測試gui如果您以BDD方式或Gui測試進行測試?

例如,測試「AdminHopp」按鈕應該只能由管理員看到「。

此管理按鈕位於特定頁面上。我應該在BDD的方式進行測試(即其中的場景:

  1. 的管理日誌然後,他看到了AdminHelp按鈕

寫一個單元測試,將current_user設置爲管理員用戶,並測試模板呈現的html是否包含AdminHelp按鈕。

謝謝。

回答

3

Specflow是一種自動化工具,但它的工作原理比Selenium或Microsoft UI Automation更高。您通常會使用它來描述用戶使用該應用程序的場景。例如:

Given Andy Admin is an administrator 
When he logs in 
Then he should be taken to the admin home page. 

Given Andy Admin is on the admin home page 
When he wants help 
Then he should be directed to the admin manual. 

請注意,我沒有提到那裏的任何地方的管理員幫助按鈕。安迪可以很容易地要求祕書尋求幫助!就係統提供的功能而言,我們正在說明的說明性的步驟。這是BDD的風格。

Specflow然後將Given,When和Then短語映射到代碼步驟。在代碼中,您可以使用自動化工具來實際點擊按鈕。但是,使用業務用於描述系統功能的相同語言更具可維護性;因爲如此,如果UI改變了,你只需要改變1步而不是15步的情況。

另外,在場景中使用更高級別的語言往往會使業務感興趣,這意味着在這些場景下與他們交談會更容易。對話是BDD的核心,我建議從那開始,然後再擔心如何執行自動化部分。