我正在按照建议的here
实施Specflow目前我面临的挑战是 - 我的单个测试执行结合了多个功能。所以我注意到当我们有一个链式步骤定义流程时 - 一些步骤定义抛出步骤绑定错误 -
下面的示例 - 功能是根据页眉更改的选择选择其中一个结果。所以我已经编写了一个搜索功能,将在此功能中重复使用 -
Feature File
Given Search a specific account <searchText> to match <column>
When A specific checkbox is selected <searchText>
Then The header should display the id
Scenarios:
| searchText | column |
| "AutoName21944" | "Account Name" |
步骤定义:
[Given(@"Search a specific account ""(.*)"" to match ""(.*)""")]
public void GivenSearchASpecificAccountToMatch(string acctName, string column)
{
Given[PreCondition for Search step]
When("I search for Portfolio " + acctName+" in ") - *Step reused from Search*
Then("the result should display records with " + acctName + " in column " + column)- *Step reused from search feature*
}
When A specific checkbox is selected <searchText>
{
}
当我们尝试运行上述功能文件时 - 获取Then("@ the result should display records with AutoName(.*) in column Account Name)
在搜索功能之后使用何时从设置帐户功能开始失败的原因是什么?
[Then(@"the result should display records with (.*) for (.*) in column (.*)")]
public void ThenTheResultShouldDisplayRecordsWithAutoInColumnAccountID(string searchTxt,string field,string col)
{
HomePage hm=new HomePage();
}
答案 0 :(得分:0)
我认为您的问题是您在示例中包含了引号。我不认为这是必要的。
尝试改为:
Feature File
Given Search a specific account <searchText> to match <column>
When A specific checkbox is selected <searchText>
Then The header should display the id
Scenarios:
| searchText | column |
| AutoName21944 | Account Name |
通过发布不编译的不完整代码,你没有让事情变得简单,所以问题可能是其他问题。您尚未发布您希望在此步骤中调用的步骤定义:
Then("the result should display records with " + acctName + " in column " + column);
没有这些信息很难让你知道它为什么没有被调用。如果您想获得帮助,那么您可以做的最好的事情就是提供所需的其他信息。
答案 1 :(得分:0)
更新了上面的代码。已经实现了,在基本步骤定义被重用于其他功能之后已经更新了.Did意识到了这个问题,一个是缺少&#39; for&#39;,还传递了3个变量。当我在其他功能中调用它时 - 仅使用2个变量。所以之后我需要在重用它时传递空间。(这是绝对必要的吗?因为没有空白值就无法工作)
Then("the result should display records with " + acctName + " for <space> in column " + column)