Specflow-Given当然后执行

时间:2015-07-28 04:04:46

标签: selenium-webdriver specflow

我正在按照建议的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();
        }

2 个答案:

答案 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)