2017-04-03 44 views
0

我有一個Specflow場景,通過我們的應用程序中的嚮導運行,並創建一個表單,很像用戶會。我們稱這個場景爲A.使用Specflow行在整個Specflow場景中運行?

現在,我需要創建另一個場景,它將創建的表單填充到/提交它。我們稱之爲場景B.

爲了能夠運行方案B,我需要方案A首先運行。有沒有辦法在方案B中使用關鍵字Background運行整個方案A?還是有另一種方法來做到這一點?

回答

1

您可以撥打步驟形成其他的步驟,讓你的方式做你想做的是創造它調用的所有步驟,包括那些在後臺步:

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"); 
    } 
} 
+0

請不要這樣做。在步驟中調用步驟對於基於Cucumber的框架來說是不好的做法。相反,使輔助函數:'iHaveDoneThis();另一件事(); thisOtherThing();' –

+0

@KyleFairns你可以擴展你爲什麼認爲這種不好的做法?不是說我反對助手功能本身,但我不確定爲什麼它的不好的練習 –

+0

問題很難追查,它實際上使維護更困難。相反,使用助手方法。 看看[這個討論](https://groups.google.com/forum/#!msg/cukes/Zi5IIAr4dJg/S9A0cnNc0G4J),它會解釋更多。 在實踐中,你不會因爲這樣做而出現任何錯誤,但是當它在步驟(等)失敗的步驟內的某個步驟內到達某個步驟時 - 必須沿着兔子洞找到爲什麼它失敗了。創建幫助函數可以使代碼更易於維護。 –

相關問題