2018年8月1日 星期三

SpecFlow .90 常用指令介紹


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蛋,新增腳本條件還好,修改跟刪除就很靠北邊走。

沒有留言:

張貼留言

解決'Microsoft.ACE.OLEDB.12.0' 提供者並未登錄於本機電腦上的問題

  解決'Microsoft.ACE.OLEDB.12.0' 提供者並未登錄於本機電腦上的問題 環境 Server:Windows Server 2012 R2 Debug IDE: VS2019 Step1 確認是否有安裝Microsoft Access Dat...