2016-04-25 44 views
2

我有11個方法的步驟定義文件 - 每個是@Given,@When或@Then方法。正在測試兩種類型的東西,特徵1和特徵2。之後會有Feature3的東西,Feature4的東西等等。現在,雖然複雜性和龐大的規模很小,但我想要將與Feature1相關的「事物」轉換爲StepsFile1,並將與Feature2相關的東西轉換爲StepsFile2。而這兩者之間常見的東西(變量和方法)需要去SOMEWHERE。 StepsFileZero?黃瓜需要特定的步驟定義纔會出現一次 - 無重複。無論如何,我不想重複。有沒有對我和這種情況的參考或資源?在黃瓜jvm中,你如何正確地將步驟分成多個文件?

此鏈接的人(http://grokbase.com/t/gg/cukes/12bk4kx7m0/cucumber-jvm-what-is-the-best-way-to-split-up-a-large-step-definition-class)似乎有同樣的問題,但答案中的幾個鏈接是死路一條,因爲有從GitHub/cucumber到cucumber.io的網站遷移。

+2

偶聯步驟文件到功能文件被冠以一個[反模式](https://github.com/cucumber/cucumber/wiki/Feature-Coupled-Step-Definitions-%28Antipattern%29),與其他建議來按領域概念分開你的步驟。 – Atreys

回答

0

只需定義一個步驟類,其中包含各種功能中使用的步驟,並在您的Runner中爲您需要的每個功能聲明其包裝。 如果您的步驟之間共享數據,這會變得更復雜一些。假設您有共同的步驟來收集用戶數據,並且不同的後續步驟將需要評估這些數據。由於黃瓜不允許遺產,所以你必須在這兩個階級中注入數據對象。一個定義用戶的數據,另一個將評估它。