gpt4 book ai didi

java - 如何从 Cucumber 表创建复杂对象?

转载 作者:行者123 更新时间:2023-11-30 07:07:22 25 4
gpt4 key购买 nike

我不知道如何读取 .feature 中的表格并正确填充

| payInstruction.custodian | and | payInstruction.acctnum |

就像内部类一样。

我有一张 table :

  | confirmationId | totalNominal | payInstruction.custodian | payInstruction.acctnum |
| 1 | 100.1321 | yyy | yyy |
| 2 | 100.1351 | zzz | zzz |

我有一个具有以下结构的类模板:

class Confirmation {
String confirmationId;
double totalNominal;
PayInstruction payInstruction;

}

class PayInstruction {
String custodian;
String acctnum;
}

自动将表格转换为List<Confirmation>出现错误,因为无法识别 payInstruction.acctnum并支付payInstruction.custodian

有什么帮助吗?

最佳答案

我知道这个问题有点老了,但 Google 确实把我带到了这里,并且将来可以与其他人一起这样做。

.feature 根据问题进行调整:

Given some confirmations:
| confirmationId | totalNominal |
| 1 | 100.1321 |
| 2 | 100.1351 |
And some pay instructions:
| confirmationId | custodian | acctnum |
| 1 | yyy | yyy |
| 2 | zzz | zzz |

实现步骤:

Map<Integer, Confirmation> confirmations;

@Given('^some confirmations:$)
public void someConfirmations(List<Confirmation> confirmations) {
this.confirmations = confirmations.stream().collect(Collectors.toMap(Confirmation::getConfirmationId, Function.identity()));
}

@And('^some pay instructions:$)
public void somePayInstructions(List<PayInstructionTestObject> payInstructions) {
payInstructions.forEach(pi ->
this.confirmations.get(pi.getConfirmationId()).addPayInstruction(pi.toPayInstruction())
);
}

诀窍是在测试文件夹中创建 PayInstruction 的子类,其中包含确认 ID 作为相关标识符以检索正确的确认。 toPayInstruction 方法充当转换器来摆脱测试对象。<​​/p>

希望 Java 和功能代码几乎可以编译,我正在编写此内容,但没有有效地使其运行。可能需要进行一些轻微的调整才能使其运行。

原始的业务模型没有受到该解决方案的影响,也没有为了测试而破坏/调整它。

关于java - 如何从 Cucumber 表创建复杂对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39848582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com