Specflow无法识别步骤

时间:2017-05-22 09:29:23

标签: c# .net specflow

我有一个包含以下When

的specflow功能文件
When Request for servername 'someurl.com/szhm04c4.xml' is processed

当我按F12时,Visual Studio告诉我可以复制以下步骤定义:

[When(@"Request for servername '(.*)' is processed")]
public void WhenRequestForServernameIsProcessed(string p0)
{
    ScenarioContext.Current.Pending();
}

我将此粘贴到我的继承自Steps的步骤文件并实现它

public void WhenRequestForServernameIsProcessed(string servername)
{
    var httpRequest = this.Bootstrapper.GetFake<IHttpRequest>();
    A.CallTo(() => httpRequest.Path).Returns(servername);

    var httpContext = this.Bootstrapper.Get<IHttpContext>();

    this.Bootstrapper.Get<IHostRequest>().Process(httpContext);
}

当我执行测试时,它会出现以下错误消息:

  

TechTalk.SpecFlow.SpecFlowException测试待处理:没有匹配的步骤   找到一个或多个步骤的定义。使用系统;运用   TechTalk.SpecFlow;

     

namespace MyNamespace {       [捆绑]       公共类StepDefinitions       {           [何时(@“处理服务器名'(。*)'处理”)] public void WhenRequestForServernameIsProcessed(string p0){       ScenarioContext.Current.Pending(); }       }}

为什么?我确实定义了这一步......

提前致谢

1 个答案:

答案 0 :(得分:3)

您必须将[Binding]属性放到类中,以便SpecFlow可以找到您的步骤。