- SpecFlow 教程
- SpecFlow - 首頁
- SpecFlow - 簡介
- 測試驅動開發
- 行為驅動開發
- SpecFlow - Visual Studio 安裝
- Visual Studio 擴充套件安裝
- SpecFlow - 專案設定
- 其他專案依賴項
- SpecFlow - 執行器啟用
- SpecFlow - HTML 報告
- SpecFlow - 繫結測試步驟
- SpecFlow - 建立第一個測試
- 配置 Selenium Webdriver
- SpecFlow - Gherkin
- SpecFlow - Gherkin 關鍵字
- SpecFlow - 特性檔案
- SpecFlow - 步驟定義檔案
- SpecFlow - 鉤子
- SpecFlow - 背景說明
- 使用示例進行資料驅動測試
- 不使用示例進行資料驅動測試
- 表格轉換為資料表
- 表格轉換為字典
- 帶有 CreateInstance 的表格
- SpecFlow - 帶有 CreateSet 的表格
- SpecFlow 有用資源
- SpecFlow - 快速指南
- SpecFlow - 有用資源
- SpecFlow - 討論
SpecFlow - 鉤子
鉤子是事件繫結,用於在某些步驟新增更多自動化邏輯。例如,對於任何需要在特定場景之前執行的步驟。為了在程式碼中引入鉤子,我們必須新增[Binding]屬性。
鉤子具有全域性訪問許可權。但可以透過聲明範圍繫結使其對特性和場景可用。範圍繫結可以使用標籤進行過濾。
SpecFlow+ 執行器限制
如果我們使用 SpecFlow+ 執行器從多個執行緒執行測試,則BeforeTestRun和AfterTestRun等 After 和 Before 鉤子每個執行緒只執行一次。
鉤子屬性
鉤子屬性如下所示:
BeforeTestRun/AfterTestRun - 用於在整個測試執行之前/之後執行自動化邏輯。它適用的方法應該是靜態的。
BeforeFeature/AfterFeature - 用於在單個特性執行之前/之後執行自動化邏輯。它適用的方法應該是靜態的。
BeforeScenario 或 Before/AfterScenario 或 After - 用於在單個場景或場景大綱執行之前/之後執行自動化邏輯。
BeforeScenarioBlock/AfterScenarioBlock - 用於在單個場景塊執行之前/之後執行自動化邏輯。(在 When 和 Given 步驟之間)。
BeforeStep/AfterStep - 用於在單個場景步驟執行之前/之後執行自動化邏輯。
鉤子執行順序
相同型別的鉤子,例如兩個 AfterScenario 鉤子,以隨機順序執行。為了使執行按特定順序進行,我們必須在鉤子屬性中新增Order屬性。
示例
[AfterScenario(Order = 1)]
public void CloseBrowser() {
// we require this method to execute first...
}
[AfterScenario(Order = 2)]
public void VerifySessionIdAfterBrowserClose() {
// ...so we require this method to execute after the CloseBrowser //method is run
}
數字表示順序,這意味著數字最小的鉤子先執行。如果省略數字,則預設值為 10000。不建議依賴它,而應為各個鉤子指定順序。
此外,如果丟擲未處理的異常,則所有後續相同型別的鉤子都將被跳過。為了防止這種情況,我們應該處理所有異常。
廣告