根據您的問題和意見的Jakub的答案,它看起來像你試圖寫一個單一的步驟,可以通過您的網站覆蓋多個用戶的旅程。 SpecFlow並非真正爲此設計的,這可能表明您應該嘗試改進場景/功能的結構。
要回答你的問題直接,我不相信有一種方法來推斷基於在步驟定義特定字符串的存在布爾值。
如果你想堅持下來的這條路線,那麼你原來的例子可能是你最好的選擇。
我會建議你不要然而,採取這種方法,而是考慮重構你的步驟定義,以便你可以將它們連接在一起,並跨場景重複使用它們。我實際上正在努力思考一個適合您的解決方案的示例步驟定義。
多步驟方法的一個例子可能是這樣的:
Given I have logged in as an existing user //1
And I have started my 6-step registration process //2
And I have filled in valid address values on step 1 //3
And I have left the fields blank on step 2 //4
... etc
When I save my registration
而且你的步驟將是:
- 導航到登錄頁面,登錄爲有效用戶
- 導航到第1步
- 填寫有效輸入的字段,單擊'下一個'
- 單擊'下一個'
您只需要確保每一步都儘可能獨立於其他步驟,以便在不影響其他步驟的情況下將一個步驟替換爲一個細微差別的步驟(對於新的場景)。
通過這種方法,你仍然可以使用複雜的(和潛在的非常詳細)的場景結束,但我認爲這是不是巧言令色和包裝儘可能多的到一個單一的步驟定義一個更好的解決方案。你最終可能會遇到無法閱讀的場景,並且代碼也可能會很難讀取/維護。
在這種情況下,布爾標誌的含義是什麼?當兩次==假時,做兩次事情意味着什麼? – 2013-04-24 14:54:53
這是一個製作的例子,所以可能不是最好的。我只想要一個很好的方法來查找特徵文件中的步驟中是否存在字符串。 – 2013-04-24 14:57:06
很高興看到真實的例子......對我而言,您的問題可能與您編寫場景的方式有關。 – 2013-04-24 14:59:12