2017-04-11 69 views
1

說我在example1.feature有像使用多個codeception功能測試相同的小黃瓜步驟

一步得到了功能測試場景:「我在數據庫中有一些」

在我的步驟文件夾中,我已經在文件example1.php中執行了該步驟。

現在說我想在example2.feature中使用相同的步驟。我知道,如果我不在example2.php中實現該步驟,它將自動使用example1.php中的實現。

但是,推薦?在另一個測試的類中執行一個測試的步驟?看起來這樣會破壞測試組隔離...

或者我應該將代碼複製/粘貼到example2.php這樣每個測試都有自己的執行步驟?看起來非常乾燥和維護的噩夢...

或者還有另一種推薦的方式來處理這種情況,也許所有的步驟類擴展了一個普通的類,它定義了在多個測試中使用的步驟?

回答

0

是否有可能在同一步驟有兩個實現?在其他口味的黃瓜,你會打賭一個模糊的步驟錯誤。該工具不知道要使用哪個實現。

如果有兩種實現方式,那我就不用擔心一個步驟實現的是哪個文件。我更擔心在兩個地方有相同的實施。

我會更擔心兩個實施的原因是沒有好的方法知道他們不會在維護期間偏離。如果他們偏離了,那麼你最終會陷入一種情況,那就是在小黃瓜中同樣的步驟意味着兩件不同的事情。那會很糟糕。