0
我有兩個名爲「X」和「Y」(許多其他)的場景 在測試場景「Y」之前,我需要運行場景「X」並將場景「X」的結果返回到場景「Y」。我應該怎麼做?如何在cucumber java測試中使用之前或後臺場景返回的結果?
我已經試過2個選項 1:我已創建的背景情況爲X,但我無法從這樣的背景情況下X返回結果的情況Y. 2:我一直在使用掛鉤註釋之前也試過。
(PS:我知道,同時測試所有的測試用例應該是相互獨立的)
我有兩個名爲「X」和「Y」(許多其他)的場景 在測試場景「Y」之前,我需要運行場景「X」並將場景「X」的結果返回到場景「Y」。我應該怎麼做?如何在cucumber java測試中使用之前或後臺場景返回的結果?
我已經試過2個選項 1:我已創建的背景情況爲X,但我無法從這樣的背景情況下X返回結果的情況Y. 2:我一直在使用掛鉤註釋之前也試過。
(PS:我知道,同時測試所有的測試用例應該是相互獨立的)
也許最簡單的方法是將兩個步驟在同一個班,然後使用類的實例變量。
public class SomeSteps {
private List<String> betweenStepsList;
@When("^I initialize a list in one step$")
public void iInitializeAListInOneStep() {
betweenStepsList = new ArrayList<String>(Arrays.asList("Peter","Piper","picked","a","peck","of","pickled","peppers"));
}
@Then("^I can access that list in a following step$")
public void iCanAccessThatListInAFollowingStep() {
System.out.println("Elements are:" + betweenStepsList);
}
}
編輯 你說過兩個場景。當我面對這個問題時,我總是找到一種方法將場景合併爲一個。
您可以在第一種情況下將中間結果寫入文件,然後在第二種情況下讀取它們。我從來不打算自己做這件事,但有很多關於如何讀寫文件的教程。這裏是針對Java的one。 Ruby或Python(你沒有指定)寫入然後讀取文件的例子也很容易獲得。
只要兩個方案都在同一個特徵文件中,並行執行就沒有問題。
這不起作用。步驟實例類是在每個場景之間重新創建的。但是,在後臺場景中使用第一步時,它會起作用。 – mpkorstanje
你是對的。將情景合併成一個情景在我的方法中是如此根深蒂固,以至於我沒有說明它。 – MikeJRamsey56