为了账号安全,请及时绑定邮箱和手机立即绑定

Jbehave 示例表数组/列表作为参数

Jbehave 示例表数组/列表作为参数

陪伴而非守候 2021-06-28 17:35:35
我们有这样的故事文件(说)Given SomethingScenario Some scenarioWhen I do something blah blahThen I get a bunch of stuff and the following data:{transformer=FROM_LANDSCAPE}|aField|aVal1|aVal2|aVal3||bField|bVal1|bVal2|bVal3||cField|cVal1|cVal2|cVal3|然后在我们的步骤类中:@Then("I get a bunch of stuff and the following data:$myData")public void verifyData(ExamplesTable myData) {    List<SomeDataClass> myDataList = myData.getRowsAs(SomeDataClass.class);    // do something}SomeDataClass 通常看起来像:public class SomeDataClass {    private int aField;    private String bField;    private String cField;    // getters/setters ...}但我的情况是,我有一个像这样的数据类:public class NewDataClass {    private int aField;    private String bField;    private Set<SomeObj> cField;    //...}在这种情况下,我有一个集合(集)作为一个字段。如何使用表格在上面的故事语法中表示这一点?也许有更好的方法?
查看完整描述

2 回答

?
UYOU

TA贡献1878条经验 获得超4个赞

JBehave 支持将参数映射到自定义类型。提供的示例将具有以下语法。


故事档案:


Given Something

Scenario Some scenario

When I do something blah blah

Then I get a bunch of stuff and the following data:

{transformer=FROM_LANDSCAPE}

|aField|aVal1|aVal2|aVal3|

|bField|bVal1|bVal2|bVal3|

|cField|cVal1|cVal2|cVal3|

步骤实施:


@Then("I get a bunch of stuff and the following data:$myData")

public void verifyData(List<NewDataClass> myData) {

    // step logic

    // ...

}

新数据类:


import org.jbehave.core.annotations.AsParameters;


@AsParameters

public class NewDataClass {

    private int aField;

    private String bField;

    private Set<SomeObj> cField;


    // getters & setters

    // ...

}


查看完整回答
反对 回复 2021-07-07
?
慕勒3428872

TA贡献1848条经验 获得超6个赞

示例故事文件片段:


Given I am on the add a new user page

When I enter <firstName> <lastName> <address> <city> <state> and <zip>

And I click the Ok button

Then the new user is added


Examples:

firstName|lastName|address        |city    |state|zip

Bill     |Hileman |123 Main Street|Yourtown|FL   |12345

Art      |VanDelay|321 Elm Drive  |MyTown  |PA   |54321

步骤文件代码:


@When("I enter <firstName> <lastName> <address> <city> <state> and <zip>")

public void whenIEnterdata(@Named("firstName") String firstName,

                           @Named("lastName") String lastname,

                           @Named("address") String address,

                           @Named("city") String city,

                           @Named("state") String state,

                           @Named("zip") String zip) {

    // your step code here

}


查看完整回答
反对 回复 2021-07-07
  • 2 回答
  • 0 关注
  • 114 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信