必须在您想要的步骤中包含随机数或不包含它

时间:2018-05-22 15:40:19

标签: c# selenium-webdriver nunit specflow

在您想要的具体步骤中包含一个随机数 例如:

https://************.com/e32d32der2tj90g8h4

我需要在值中包含随机数

Feature: Zonas

@TEST
Scenario Outline: TEST
Given Insert <Descripcion>
And insert <CodigoDeInterfaz>
And Validate Description <Descripcion>
And Validate CodigoDeInterfaz <CodigoDeInterfaz>
Examples:
| Descripcion    | CodigoDeInterfaz      |
| DescTH6456565          | CodDeIntHT45645645   

所以输入参数都包含随机数

  1. SpecFlow 2.3.2
  2. C#
  3. NUnit 3

2 个答案:

答案 0 :(得分:1)

您可以尝试使用Specflow.DSL

Feature: Zonas

@TEST
Scenario Outline: TEST
Given Insert <Descripcion>
And insert <CodigoDeInterfaz>
And Validate Description <ValidateDescripcion>
And Validate CodigoDeInterfaz <ValidateCodigoDeInterfaz>
Examples:
| Name   | Descripcion                     | ValidateDescripcion  | CodigoDeInterfaz                     | ValidateCodigoDeInterfaz |
| Random | [[Descripcion=RegEx([0-9]{7})]] | [[Descripcion]]      | [[CodigoDeInterfaz=RegEx([0-9]{7})]] | [[CodigoDeInterfaz]]     |

答案 1 :(得分:1)

执行此操作的最简单方法是使用StepArgumentTransformation,如下所示:

[Then("And Validate Description (.*)")]
public void ThenValidateDescription(RandomisedValue description)
{}

[StepArgumentTransformation]
public RandomisedValue ToRandomisedValue(string initialInput)
{
    return initialInput + GetRandomData();
}

specflow将使用方法中的数据调用步骤参数转换方法,添加随机元素并返回表示已随机化数据的类。只要你想要每种类型的随机化都有一个独特的类,那么specflow将能够确定它应该调用哪个步骤参数转换......