将值列表传递给Cucumber场景大纲

时间:2013-07-19 09:44:09

标签: cucumber cucumber-jvm

我有一个方案来验证100个员工姓名,QueryString将以xml格式返回它们。我想要做的是验证Assertion语句中的所有员工姓名,如下所示。而不是在场景大纲示例中添加每个名称,是否可以发送100个员工姓名的列表作为输入,以便我可以在java中迭代它们并且可以轻松地在断言条件中进行验证。请指教。

Scenario Outline: When the User queries for employee information, the correct records are returned
    Given the webservice is running
    When the User queries for employee information "<QueryString>"
    Then the User receives correct data "<Name>"

Examples:
|QueryString|Name|
|Some localhost url|Peter|
|Some localhost url|Sam|
.
.

@Then("^the User receives correct data\"([^\"]*)\"$")
    public void the_user_receives_correct_data(String arg1) throws Throwable {
        queryResultPage = selenium.getPageSource();
        assertTrue(queryResultPage.contains(arg1));
    }

2 个答案:

答案 0 :(得分:0)

所以我将回答LINGS评论 您可以做的是,在步骤定义中使用这些文件名来加载代码中的文件。据我所知,黄瓜不支持直接加载文件。 我使用这样的东西找到我的相对路径文件名的完整ressource pathes:

public static String getAbsoluteResourcePath(String resourcePath) {

    if (SystemUtils.IS_OS_WINDOWS) {
      return Utils.class.getResource(resourcePath).getPath().substring(1).replace("/", File.separator);
    } else {
      return Utils.class.getResource(resourcePath).getPath().replace("/", File.separator);
    }
}

然后,resourcePath应该是您的相对文件路径

答案 1 :(得分:0)

您要寻找的是外部测试数据支持,QAF支持该功能。您可以将任何inbuilt data providerinterceptor一起使用来修改数据集或custom data provider

如果您使用的是黄瓜5+版本,则可以使用qaf-cucumber,它将为您提供黄瓜的所有qaf功能。对于lower version,您可以使用QAF运行程序运行现有的功能文件。