0
我有一個Specflow場景,通過我們的應用程序中的嚮導運行,並創建一個表單,很像用戶會。我們稱這個場景爲A.使用Specflow行在整個Specflow場景中運行?
現在,我需要創建另一個場景,它將創建的表單填充到/提交它。我們稱之爲場景B.
爲了能夠運行方案B,我需要方案A首先運行。有沒有辦法在方案B中使用關鍵字Background
運行整個方案A?還是有另一種方法來做到這一點?
我有一個Specflow場景,通過我們的應用程序中的嚮導運行,並創建一個表單,很像用戶會。我們稱這個場景爲A.使用Specflow行在整個Specflow場景中運行?
現在,我需要創建另一個場景,它將創建的表單填充到/提交它。我們稱之爲場景B.
爲了能夠運行方案B,我需要方案A首先運行。有沒有辦法在方案B中使用關鍵字Background
運行整個方案A?還是有另一種方法來做到這一點?
您可以撥打步驟形成其他的步驟,讓你的方式做你想做的是創造它調用的所有步驟,包括那些在後臺步:
Backgroud:
Given I have done this
Scenario:
Given another thing
And this other thing
,那麼你可以創建一個像這樣的步驟
[Binding]
public class MySteps: Steps //<- this is important if you want to reuse steps
{
Given("I have done eveything")]
public void GiveIHaveDoneEverything()
{
Given("I have done this");
Given("another thing");
Given("this other thing");
}
}
請不要這樣做。在步驟中調用步驟對於基於Cucumber的框架來說是不好的做法。相反,使輔助函數:'iHaveDoneThis();另一件事(); thisOtherThing();' –
@KyleFairns你可以擴展你爲什麼認爲這種不好的做法?不是說我反對助手功能本身,但我不確定爲什麼它的不好的練習 –
問題很難追查,它實際上使維護更困難。相反,使用助手方法。 看看[這個討論](https://groups.google.com/forum/#!msg/cukes/Zi5IIAr4dJg/S9A0cnNc0G4J),它會解釋更多。 在實踐中,你不會因爲這樣做而出現任何錯誤,但是當它在步驟(等)失敗的步驟內的某個步驟內到達某個步驟時 - 必須沿着兔子洞找到爲什麼它失敗了。創建幫助函數可以使代碼更易於維護。 –