[C#.NET][SpecFlow] 使用 Scenario Outline 执行多次验证

[C#.NET][SpecFlow] 使用 Scenario Outline 执行多次验证


续上篇,http://www.dotblogs.com.tw/yc421206/archive/2014/12/25/147796.aspx

Table 是用来处理集合

Scenario Outline 是多次调用被测端,这有点像 MSTest 里的驱动测试

如何使用 Scenario Outline

  1. 声明 Scenario Outline:
  2. 使用 Example 定义输入数据以及期望数据
  3. 若要使用 Example 字段,字段名称要加 ,例如:

范例如下:

Scenario Outline: authentication
    Given 我输入 
  
  
   
   ,
   
   
    
    
    When 我按下Login
    Then 结果应为 
    
    
     
     
    Examples:
    | UserId | Password | Result |
    | kobe   | 12234    | false  |
    | yao    | 1234     | true   |
    | jordan | 5566     | false  |   
    
    
   
   
  
  

https://dotblogsamples.codeplex.com/SourceControl/latest#Simple.SpecflowLogin/Simple.SpecflowLogin/Login.feature

当 Scenario 声明成 Outline,测试总管那边会把一个 Scenario 拆成 Examples 所定义的笔数

若要针对整个 Scenario Debug,可以按右键 Debug SpecFlow Scenario,或是 Ctrl+R,Ctrl+A

SpecFlow 的程序,就没什么特别的地方了

[Given(@"我输入 (.*),(.*)")]
public void Given我输入(string userId, string password)
{
	var account = new Account() { UserId = userId, Password = password };
	ScenarioContext.Current.Set(account, "account");
}

[When(@"我按下Login")]
public void When我按下Login()
{
	var account = ScenarioContext.Current.Get
  
  
   
   ("account");
	var actual = this._security.IsVerify(account.UserId, account.Password);
	ScenarioContext.Current.Set
   
   
    
    (actual, "actual");
}

[Then(@"结果应为 (.*)")]
public void Then结果应为(bool expected)
{
	var actual = ScenarioContext.Current.Get
    
    
     
     ("actual");
	Assert.AreEqual(expected, actual);
}
    
    
   
   
  
  

程序如下:

https://dotblogsamples.codeplex.com/SourceControl/latest#Simple.SpecflowLogin/Simple.SpecflowLogin/LoginSteps.cs


而,被测端程序,只是很简单的逻辑

public bool IsVerify(string userId, string password)
{
	return userId == "yao" && password == "1234";
}

程序如下:

https://dotblogsamples.codeplex.com/SourceControl/latest#Simple.SpecflowLogin/Simple.Utility/Security.cs


文章出自:https://www.dotblogs.com.tw/yc421206/2014/12/25/unit_test_specflow_scenario_outline

项目位置:https://dotblogsamples.codeplex.com/SourceControl/latest#Simple.SpecflowLogin/

若有谬误,烦请告知,新手发帖请多包涵

2010~2017 C# 第四季

原文:大专栏  [C#.NET][SpecFlow] 使用 Scenario Outline 执行多次验证


猜你喜欢

转载自www.cnblogs.com/petewell/p/11526715.html