2016-01-29 64 views
1

在JBehave中,可以在Step級別添加BeforeStory或AfterStory註釋。因此,如果有多個帶有BeforeStory註釋的Steps類,那麼所有那些BeforeStory註釋的方法將在每個故事開始之前執行(不需要)。如何在故事文件中添加JBehave BeforeStory AfterStory

在JUnit中,我們可以根據需要在測試類中單獨添加或離開BeforeClass或Before。所以我需要的是在故事級別添加BeforeStory或AfterStory的方法,就像JUnit測試類一樣。

有沒有辦法在故事文件中添加BeforeStory作爲生命週期?或任何替代解決方案?

以下示例僅顯示在生命週期中添加Before。

http://jbehave.org/reference/stable/story-syntax.html

Lifecycle: 
Before: 
Given a step that is executed before each scenario 
After: 
Outcome: ANY  
Given a step that is executed after each scenario regardless of outcome 
Outcome: SUCCESS 
Given a step that is executed after each successful scenario 
Outcome: FAILURE 
Given a step that is executed after each failed scenario 

感謝。

回答

0

在我看來,jbehave現在沒有這樣的設施。但請嘗試以下操作 - 在類文件中執行Given以初始化用戶,並在故事情節結束時定義另一個Given來釋放資源。我知道這種方法打破了整個和業務定義場景的BDD範例,但至少是一種解決方法。 爲了確保它首先執行並且最後執行,您可以對initUsers()和(priority = n)使用(priority = 1)進行cleanup()。

0

正如您從文檔中引用的那樣,Before和After步驟在每個場景而不是步驟之後執行,如前所述。在故事文件中沒有定義「故事前」步驟的設施。

在故事文件中定義某些內容的替代方法是使用@BeforeStory註釋方法,如:http://jbehave.org/reference/stable/annotations.html

相關問題