为什么我的流测试未能检查某些节点中的事务,即使它们存在于存储中?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么我的流测试未能检查某些节点中的事务,即使它们存在于存储中?相关的知识,希望对你有一定的参考价值。
错误:java.lang.AssertionError:expected:net.corda.core.transactions.SignedTransaction但是:net.corda.core.transactions.SignedTransaction预期:net.corda.core.transactions.SignedTransaction实际:net.corda.core。 transactions.SignedTransaction
据我所知,预期和实际交易都是相同的,但它仍然抛出错误。它正在通过其他测试但突然失败,没有任何令人满意的调试信息。下面是我测试的代码:
@Test
public void flowRecordsATransactionInBothPartiesTransactionStorages() throws Exception {
SignedTransaction signedTx = createPlacementCompleteTxn();
// We check the recorded transaction in both vaults.
for (StartedMockNode node : ImmutableList.of(participantsNodes.get(0), participantsNodes.get(1), participantsNodes.get(3))) {
assertEquals(signedTx, node.getServices().getValidatedTransactions().getTransaction(signedTx.getId()));
}
答案
这对我在Corda 4上工作正常。例如,以下测试通过:
@Test
public void recordedTransactionIsCorrect() throws Exception {
ExampleFlow.Initiator flow = new ExampleFlow.Initiator(1, b.getInfo().getLegalIdentities().get(0));
CordaFuture<SignedTransaction> future = a.startFlow(flow);
network.runNetwork();
SignedTransaction signedTx = future.get();
// We check the recorded transaction in both vaults.
for (StartedMockNode node : ImmutableList.of(a, b)) {
SignedTransaction recordedTx = node.getServices().getValidatedTransactions().getTransaction(signedTx.getId());
assertEquals(recordedTx, signedTx);
}
}
以上是关于为什么我的流测试未能检查某些节点中的事务,即使它们存在于存储中?的主要内容,如果未能解决你的问题,请参考以下文章