我正在使用Specflow进行测试自动化。我发现了有用的StepArgumentTransformation绑定。
当有多个输入参数时,有没有办法只转换其中一个输入参数?以下面的例子为例:
[StepArgumentTransformation(@"button '(.*)' is '(.*)'")]
public bool ThenButtonIsTransformation(string buttonName, string status)
{
// Do some work here
}
我希望能够根据status的值返回布尔值true或false。我不关心buttonName值。
总而言之,我希望两个输入参数都进入step函数,但我不想担心从转换方法返回一个复杂的对象,以便存储两个输入参数。
答案 0 :(得分:0)
在功能文件中:
Scenario: stackoverflow usecase
Given button green is true
在步骤定义中:
[Given(@"button (.*) (is .*)")]
public void ThenButtonIsTransformation(string buttonColor, bool status)
{
string color = buttonColor;
bool value = status;
Console.Write("Button color is: {0} and value is: {1}", color, value);
}
[StepArgumentTransformation(@"is (\w+)")]
public bool ProduceBoolValue(string status)
{
if (status.ToLower().Equals("true"))
return true;
if (status.ToLower().Equals("false"))
return false;
return false;
}
如果可以,请接受答案!