我正在尝试为Specflow编写StepArgumentTransformation。
我有小黄瓜
Scenario: Test Arguments
Given user enter once as 2
我已经在步骤定义中写了这个。
[StepArgumentTransformation]
public int GetOnces(string onces, string times)
{
return 1 * int.Parse(times);
}
[Given(@"user enter (.*) as (.*)")]
public void GivenUserEnterOnce(int num)
{
Assert.Equal(2, num);
}
但是从未调用 GetOnces 方法,但出现异常
TechTalk.SpecFlow.BindingException:'参数计数不匹配!绑定方法'GivenUserEnterOnce(Int32)'应该具有2个参数
答案 0 :(得分:1)
绑定应该像这样:
[StepArgumentTransformation("(.*) as (.*)")]
public int GetOnces(string onces, string times)
{
return 1 * int.Parse(times);
}
[Given(@"user enter (.*)")]
public void GivenUserEnterOnce(int num)
{
Assert.Equal(2, num);
}
如果要转换多个参数,则必须在StepArgumentTransformation处指定正则表达式。您的实际步骤只有一个参数,因此正则表达式中只有一个参数有效。
您可以在以下位置找到此文档:https://specflow.org/documentation/Step-Argument-Conversions/
答案 1 :(得分:0)
对我来说,问题只是我忘记/删除了我的方案中的“然后”行