3
我正在測試產品搜索表單。產品可以通過不同的參數(如狀態,材料,懷特等)進行搜索。當我想按狀態搜索時,我執行以下操作:如何迭代behat /水貂中的所有<select>字段選項
Scenario Outline: search by status
When I select "<status>" from "search_form_status"
And I press "Search"
And I wait for 3 seconds // implemented
And I follow random link from test result table // implemented
Then I should see "<status>" in the "div#status" element
Examples:
|status |
|enabled |
|disabled|
而且一切都很好。但是,如果我想測試相同的搜索說法,productMaterial我卡住了,因爲產品材料是可隨時更改的主題(我們可能需要新材料,可能會編輯材料名稱或刪除舊的未使用材料)。此外,測試環境和生產現場的材料也會有所不同。 我知道我可以這樣做:
Given I select product material
和實施步驟與foreach循環是這樣的:
$matList = $this->getSession()->getPage()->findAll('css', "select option");
foreach($matList as $material){
// DO SOMETHING
}
}
但我將如何創建所有其他步驟喜歡在status
例子嗎? 我想我會想在我的search.feature文件的以下步驟中使用$material
變量,以獲得自定義步驟後面的步驟。但我該怎麼做? 我將如何遍歷所有選項列表並在每次迭代中執行一堆步驟?
你不必來測試一個測試案例的所有功能。嘗試測試(並重構,如果不可能)代碼,以便每一個測試只測試一件事情,並做得很好。 在你的情況,你可以爲材料創建測試並定義了幾種不同的,但有意義的案例: - 無材料(如果可能的話) - 最少數量的材料 - 一對夫婦的平均套料 - 最大(如果定義)材料組 更改材料數量,材料名稱等可以在專門爲此目的進行的單獨測試中進行測試。 歡迎! :) – Alexander
我想你不明白我。我只想測試一個功能 - 按材料搜索產品。我無法確切知道我擁有哪些材料以及其中有多少材料。 –