2013-06-28 43 views
0

可以說這是我的.featurefile,背後很步驟的方法綁定..Specflow - 如何回遷previos一步

Given The system administrator sends a list of Tracks 
And The system is at CreateCWRFile method 
And The system sends "name", "caeID" & "ver" to generate HDR Line 
Then The system generates GRH Line 
Then The system generates track Revision Line 
Then The system generates track SPU Line 
Then The system generates track SPT Line 
Then The system generates and verifies SWT, PWR & SWR Lines each writer of track 

讓我們說我的測試是行號5即步驟#5並在某些情況下,我想回到步驟2,如何做到這一點..

+1

這不是在specflow /小黃瓜支持。步驟執行是連續的。你不能有循環或分支。但爲什麼你想回去?我認爲你應該創造出兩種不同的情景,一種情況是對於給定的步驟是真實的,另一種是條件對於不同的步驟是錯誤的。 – nemesv

+1

當我讀到時,我對自己說「Ouch - antipattern」一個 –

回答

1

在風險重複Specflow step definition mapping with wildcard attribute我認爲你正在努力,因爲你正在努力實現。

SpecFlow擅長描述;

  • 你的系統應該在狀態 - 即Given
  • 操作要執行 - 即When
  • 和狀態應該是什麼樣子之後即Then

所以可能是你上面的例子混合了一些ThenWhen s。

由於nemesv在評論中指出,您可能應該有多個場景來處理分支。以How to run gherkin scenario multiple times爲例。

您唯一的選擇是從多個步驟構建您的場景,並測試您每次都處於正確的狀態,例如,

Given the traffic light is red 
When the light changes 
Then the light should be amber 
When the light changes 
Then the light should be green 
When the light changes 
Then the light should be amber 
When the light changes 
Then the light should be red 

好運:-)

+0

問題是我有很長的算法來生成一個文件,他算法使用各種方法,這些方法需要檢查,如果我爲每個方法做一個步驟,我不能循環,如果我把整個算法或一步之後的部分算法,然後我只需要一步就可以完成很多步驟... – Moon

+0

換句話說,您的代碼已準備好進行重構:-) – AlSki