2011-07-11 63 views
5

我使用SpecFlow開始,想知道沃爾德是可以重用的規格重用SpecFlow方案

基本上之間的場景我的想法是這樣的(我可能是根本錯誤的:))

我有一個功能編寫驗證導航。

特點:導航

I should be able to navigate to all the pages i'm authorized to 

情形:導航至BOO

Given I enter proper values in Foo 
When I enter Go 
Then I should be taken to Boo** 

然後我有另一個規範,將驗證啵

的操作側功能:驗證Boo是否正常工作

所以在這裏,我基本上需要先導航到Boo屏幕。我在想,如果我可以重用場景:導航到BOO情況寫在導航

這可能嗎?否則,繞過它的最佳方式是什麼?

/BB

回答

5

你這裏有兩種選擇:

  1. 創建已共享步驟一類,常見的許多場景。在你的情況下,這個類將包含「當我導航到Boo」步驟。然後這將可用於其他功能。

  2. 您可以使用完全相同的名稱/文本執行多個步驟,但可以使用ScopedStepBinding以確保爲某個功能調用該步驟的正確版本。因此,您可以將「當我導航到Boo」出現在多個功能文件中,但通過使用步驟範圍界定,您可以控制爲特徵文件運行哪些代碼。

+0

謝謝傑森。幾乎我在找什麼! – Illuminati

+0

不錯的一個:)很高興我能幫忙。 –

+3

「創建一個共享步驟的類」 - >這不僅是一個選項,它是強制性的。在SpecFlow中,所有步驟都是共享的。步驟類只是步驟容器,但它們不封裝它們。因此,最好是通過共同方面(ProductSteps,CustomerSteps,PaymentSteps等)而不是按功能(CheckoutFeatureSteps)組織類中的步驟,因爲無論如何這些步驟都可用於其他功能。這並不會改變您的答案的有效性,但我發現在使用SpecFlow時,瞭解這些細節會有很大幫助。 –