我不知道如何从.feature
读取表格并正确填充
| payInstruction.custodian | and | payInstruction.acctnum |
像内部类一样。
我有一张桌子:
| 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
任何帮助?
答案 0 :(得分:1)
我的方法是为Confirmation
提供包含四个基元的构造函数,然后在PayInstruction
的构造函数中创建Confirmation
。
答案 1 :(得分:0)
我知道这个问题有点陈旧,但谷歌确实把我赶到了这里,并且可以在未来与其他人合作。
.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作为相关标识符,以检索正确的确认。 希望Java和功能代码几乎正在编译,我写这篇文章时没有有效地运行它。可能需要稍作调整才能使其运行。 最初的商业模式没有受到解决方案的影响,没有打破/调整它进行测试。toPayInstruction
方法用作转换器来摆脱测试对象。</ p>