我有一个包含以下When
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(); } }}
为什么?我确实定义了这一步......
提前致谢
答案 0 :(得分:3)
您必须将[Binding]属性放到类中,以便SpecFlow可以找到您的步骤。