2 回答

TA貢獻(xiàn)1811條經(jīng)驗 獲得超4個贊
我可以理解您對此的不滿,但后續(xù)功能無法相互構(gòu)建。每個場景都是原子的且可重復(fù)的。場景相互依賴的問題是,失敗的場景會導(dǎo)致后續(xù)場景中的級聯(lián)故障。應(yīng)用程序中的一個故障會觸發(fā)多個失敗的測試,導(dǎo)致您的團(tuán)隊開始認(rèn)為測試不可靠。
編寫一個模擬之前場景的步驟并沒有什么問題——這是正確的方法。定義這些步驟時,請盡可能保持它們的原子性,以便它們非??山M合。
老實說,6步場景就完全沒問題了。我建議的唯一更改是制作Given
步驟的版本。取消的When
情況看起來對很多人來說都是如此。
Feature: Cancelling a message Scenario: A User cancels a message Given there is a user called User1 And there is a user called User2 And User1 created a new message with id 1234 And User2 added the location US to the message When User1 cancels the message Then User2 should see status Cancelled

TA貢獻(xiàn)1909條經(jīng)驗 獲得超7個贊
原始:您可以從每個設(shè)置步驟中提取代碼并使它們起作用,將函數(shù)作為步驟的代碼調(diào)用(執(zhí)行與之前相同的任務(wù)),然后創(chuàng)建一個調(diào)用這些函數(shù)的新設(shè)置步驟,這意味著他們有一個共享的實現(xiàn)
替代方案:編寫一個帶標(biāo)記的 Before 掛鉤,它知道被測系統(tǒng)的狀態(tài),即使只是設(shè)置步驟是否已發(fā)生,并使用該信息針對這些情況重置系統(tǒng)。您甚至可以在此處執(zhí)行運行狀況檢查,以確保在系統(tǒng)需要時可以進(jìn)行完全重置。
或者甚至將此代碼放入步驟本身中,并讓他們知道如果運行狀況檢查已通過則跳過部分(很可能是 if 語句)
添加回答
舉報