SpecFlow .90 常用指令介紹
[Scope(Feature = "任選特價特折測試")]
設定執行腳本的前置跟結束的動作
用法 | 說明 |
[BeforeScenario("Feature")] | 執行前 |
[AfterScenario("Feature")] | 執行後 |
程式碼範例
[BeforeScenario("DownLoadPhoneAppcation")]
public void BeforeScenario()
{
}
[AfterScenario("DownLoadPhoneAppcation")]
public void AfterScenario()
{
}
實際執行的情形會像是下方的圖片
像是在寫腳本可重複使用
[Given(@"帳號 ""(.*)""")]
public void Given帳號(string Account)
暫存值寫入及調用
===數值===
寫入值
ScenarioContext.Current["Account"] = Account;
調用值
ScenarioContext.Current["Account"];
===類型===
寫入類型
ScenarioContext.Current.Set(ordersDetails, "ordersDetails");
調用類型
ScenarioContext.Current.Get<IEnumerable<SM_OrdersDetail>>("ordersDetails");
Table格式會自動mappering(神物)
規則依照table傳入為基準值,所以不用宣告整個到跟要比對的table完全一模一樣
只要寫出要驗證的欄位,只要欄位名稱一樣自動就會mappering到
[When(@"到資料庫內撈取訂單明細金額")]
public void When到資料庫內撈取訂單明細金額()
{
var ordersDetails = _ordersDetail.GetByOrdNo(ordNo);//取10比明細
ScenarioContext.Current.Set(ordersDetails, "ordersDetails");//存入暫存區
}
搭配seleniumWebDriver 可以進行 WebUITesting
Support
- firefox
- chrome
- Eage
PS.可以在驗證錯誤時存下當下畫面
結論
優點
- 當腳本寫好時可以輕易的修改及新增範本
- 偏向BDD腳本上一目了然,基本上變相的是開發文件
- 可以幫助進入狀況理解程式到底要在幹嘛
- 可產出結果報表網站(有水水的版本)
- 如果有整合測試可以了解流程及相關牽扯到的table資訊(因為都要清空)
- 可以使用command語法進行Testing也會進行到specflowing包含web ui testing
缺點
- 建構耗時。
- 修改基礎腳本時實在是很OX蛋,新增腳本條件還好,修改跟刪除就很靠北邊走。
沒有留言:
張貼留言