2016-06-23 63 views
0

比方說,我們有這樣的多個測試:爲JBehave設置固定數據的最佳方式測試

Scenario: trader is not alerted below threshold 

Given a stock of symbol STK1 and a threshold of 10.0 
When the stock is traded at 5.0 
Then the alert status should be OFF 

但轉折是,任何睾丸都跑了之前所有的「鑑於」安裝有許多工作要做。什麼是最好的方法來做到這一點?

回答

0

檢查http://jbehave.org/reference/stable/story-syntax.htmlLifecycle:故事文件的步驟。但要小心,那些在每個場景之前/之後執行。

還有@BeforeStory@AfterStory註釋,它們很明顯可以使用,但您可能想要檢查文檔:http://jbehave.org/reference/stable/annotations.html

但是,您可能覺得在故事文件中有的所有內容會更好......據我所知,您不能在故事文件中定義一個步驟,該步驟在執行故事前運行。

我也遇到過這個功能的缺失,但我認爲它沒有實現的原因是它不適合BDD方法,這些方案應該是獨立可執行和可以理解的。這些步驟通常與某種環境準備有關(對於所有場景全局),這對於人類讀者(利益相關者)來說並不重要,因此不應該是文件所假定的「用戶故事描述」的一部分是。

如果沒有主要的性能問題,我發現 - 從可讀性的角度來看 - 最好在每個場景之前運行這些設置/拆卸的東西。如果您使用Lifecycle:步驟,則不會出現重複,對於任何人類讀者而言,只要閱讀故事文件就可以明確執行測試的步驟。但那只是我的個人意見。

所以我認爲你有以下選擇:

  1. 運行步驟前/使用LifeCycle:每個情景後步驟
  2. 使用@BeforeStory@AfterStory註釋
  3. 定義與您的安裝/拆卸的虛擬場景步驟作爲故事文件的第一個/最後一個場景並命名,以便每個人都清楚它只是一個「技術」場景。默認情況下,這些場景的順序是固定的,所以這可能會起作用。 (hackish的...)在Lifecycle:部分
  4. 寫步驟,和黑客的這些步驟的實施,使他們在一個故事(更hackish的)執行一次
相關問題