2017-03-09 72 views
1

我使用JBehave與硒和寧靜,我有3個場景。我想要逐個運行場景。如果場景通過,則運行第二個場景。如果場景兩遍,則運行第三個場景。如果情況一失敗,那麼它不應該運行任何其他情況。我如何實現這一目標?只有當第一個通過JBehave運行第二個方案

回答

1

您的場景應該彼此獨立,並且在一種情況下可以完全表示一個目標。 BDD中的鏈接場景是一種反模式,應該避免。

接下來的問題是爲什麼你應用功能測試失敗的快速策略。這需要重新考慮,以確定您的情況是否是一個完善的方法。雖然快速失敗是部署管道的常態,但對於自動化功能測試,特別是在使用BDD進行功能驅動開發期間,這不是一種好方法。爲自動化功能測試提供故障安全策略是一種更好的方法。我建議你完成所有測試。這通常會提供更多的價值。它將避免早期失敗的測試,從而掩蓋可能更嚴重的失敗測試或測試,以應對更重要或有價值的功能。一份全面的測試報告可以使整改工作成爲優先事項。

如果所有三種情況的故障觸發都是常見的,則使用共同的先決條件步驟。例如Given the customer is authorised。然後簡單地保留每個場景的前提條件。

如果失敗的觸發因素是環境因素,請在賽跑者中使用鈴聲測試或使用適當的@Before測試鉤。例如LDAP或數據庫可用。然後使用每個功能或場景來測試這個假設。

如果這些都不適用,您將需要使用您正在使用的場景的一些示例詳細說明您的要求。

+1

謝謝馬丁。實際上,這隻能是一種情況,但這是一個很大的情況。所以我想我可以分開它。現在我意識到情景應該是獨立的。現在我正在寫一個大場景。非常感謝您的幫助。 – Neela

0

您可能會使用受到破壞的異常,但JBehave(以及一般的BDD場景)實際上並不打算以這種方式使用 - 每個場景都應該是獨立的。

+0

謝謝約翰。現在我意識到Scenario應該是獨立的。 – Neela