TechTalk.SpecFlow.BindingException:'参数计数不匹配!绑定方法

时间:2018-12-21 07:12:10

标签: c# specflow gherkin

我正在尝试为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个参数

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)

对我来说,问题只是我忘记/删除了我的方案中的“然后”行