[C#.NET][SpecFlow] 使用 Scenario Outline 执行多次验证
Posted petewell
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[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
- 声明 Scenario Outline:
- 使用 Example 定义输入数据以及期望数据
- 若要使用 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 执行多次验证
以上是关于[C#.NET][SpecFlow] 使用 Scenario Outline 执行多次验证的主要内容,如果未能解决你的问题,请参考以下文章
SpecFlow 测试无法使用 Playwright.NET 运行
Specflow - 使用 .NET Core 的 Microsoft 依赖注入导致 BoDi.ObjectContainerException
使用 Visual Studio for Mac 使用 SpecFlow 进行 .NET Core 集成测试