Specflow入門 (2)簡單case的實現

2021-08-20 13:40:09 字數 1475 閱讀 3927

我們已經建立好了乙個空專案,可以為其加入test case

specflow中用 .feature 檔案包含乙個使用者故事。使用gherkin語言規範來描述。

我們可以先建立乙個feature檔案來了解一下。為了使結構清楚,我們將所有feature檔案放置在features資料夾中。

乙個feature檔案只能有乙個feature頭,用來描述該feature的名稱。可以將該feature理解為乙個使用者故事,或者軟體的乙個功能描述。當前檔案中的 arithmeticfeature表示了該feature要描述的功能為四則運算。下面三行斜體字是對該feature的詳細描述。

緊接著,出行一行scenario (目前忽略@mytag),表示該功能下的乙個場景。此例中為,四則運算功能下的兩數相加運算(add two numbers)。乙個feature中可以有多個scenario。我們可以在當前的scenario下新增新的場景:subtract two numbers,表示兩數相減的場景。

注意到,每個scenario下都有幾行自然語言描述的語句,這些句子就叫做step(步驟)。是specflow中最小的可執行單元。

其中第乙個藍色的單詞表示該步驟的行為:

given 表示準備好的狀態或條件,

when 表示觸發系統(軟體)的乙個動作,

then 表示要期待的結果,

and 與其上一步的行為一樣,比如此處的and就等同於given。

這些step的作用就是將自然語言的action鏈結到可執行的c#**。

接下來,我們將建立stepdefinition,就是step的鏈結**。

注意到,當建立stepdefinition後,feature檔案中的step的顏色變為了黑色。在step上面f12可以跳轉到該step對應的**。也就是說,當specflow在執行該step的時候,實際上是在執行該step鏈結的**。當然,如果沒有為其建立stepdefinition,該step也無法執行。注意16行,我們沒有為該step建立對應的**,其顏色未變黑。

至此,大家應該對specflow有了直觀的感受,這些feature以及scenario就是對軟體或產品的功能性描述,而specflow會將這些描述鏈結到可執行的**,這樣就將靜態的業務或功能性描述變成了可以執行並驗證的測試用例。每當需要驗證產品的某個功能是否正常時,我就去執行乙個feature下的所有scenario,看看這個功能是否還和我的描述一致,以達到測試並保證產品還與之前需求的描述一致的目的。

簡單Linux入門 2

使用者剛剛啟動 vi vim,便進入了命令模式。此狀態下敲擊鍵盤動作會被vim識別為命令,而非輸入字元。比如我們此時按下i,並不會輸入乙個字元,i被當作了乙個命令。以下是常用的幾個命令 i 切換到輸入模式,以輸入字元。x 刪除當前游標所在處的字元。切換到底線命令模式,以在最底一行輸入命令。命令模式只...

cmake簡單入門2

cmake 最低版本要求 cmake minimum required version 2.8 專案名稱 project main 是否使用自己的 tools 庫 option use mymath use provided math implementation on 是否加入 mathfunct...

簡單的LaTeX入門 2

導言區 documentclass ctexart 為文件類 usepackage 正文區 begin 一 section section表示目錄一,前面加sub表示1.1 再加subsub表示1.1 1,以此類推 啦啦啦啦啦啦啦啦啦 par 啦啦啦啦啦啦啦啦啦 par par可以表示換行,以及雙斜...