Corda 在@InitiatedBy端上集成测试事务输出事务结束后
在这种情况下,我有一个名为ProposeMemberFlow的Corda 在@InitiatedBy端上集成测试事务输出事务结束后,corda,Corda,在这种情况下,我有一个名为ProposeMemberFlow的@InitiatingFlow,和一个相应的@InitiatedByProposeMberFlowResponder。我想在我的集成测试中包括一些测试,测试响应者在FinalityFlow子流被发起流启动后是否有一个事务输出状态 我天真地在响应流中调用了waitForLedgerCommit,对CollectSignaturesFlow进行了post响应,但我发现启动流在响应流完成之前就完成了—可能后者正在等待vault更新 我正在通
@InitiatingFlow
,和一个相应的@InitiatedBy
ProposeMberFlowResponder。我想在我的集成测试中包括一些测试,测试响应者在FinalityFlow子流被发起流启动后是否有一个事务输出状态
我天真地在响应流中调用了waitForLedgerCommit
,对CollectSignaturesFlow进行了post响应,但我发现启动流在响应流完成之前就完成了—可能后者正在等待vault更新
我正在通过CordaService进行集成测试-使用expectEvents
等待Vault Update
的“corda方式”是否可以让我知道何时可以安全地使用CordaService进行测试?很像
谢谢我还没有听说过通过
CordaService进行集成测试
。通常,您将使用节点驱动程序编写集成测试
下面是一个例子:
这段代码启动一组节点,然后使用RPC检查节点的某些条件
在您的情况下,您希望在节点驱动程序中使用以下RPC操作集:
在节点A的RPC句柄上运行CordaRPCOps.startFlowDynamic
ProposeMemberFlow
在节点B的RPC句柄上检查是否已将正确的状态写入vaultCordaRPCOps.vaultQueryBy
AbstractNode
接口的另一个实现,出于测试的目的,模拟节点的行为应该像普通节点一样。谢谢Joel:-)我喜欢从入口点到系统进行集成测试。在我的例子中,这是一个(基于辫子的)CordaService。所以我真的不想从流量级别开始。也就是说,我问的是“科达方式”,你的回答相当简洁地概括了这一点。所以谢谢你。花时间回答的话太多了:-)