为什么我的流测试未能检查某些节点中的事务,即使它们存在于存储中?

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);
    }
}

以上是关于为什么我的流测试未能检查某些节点中的事务,即使它们存在于存储中?的主要内容,如果未能解决你的问题,请参考以下文章

有啥方法可以检查我的流分析输入是不是已经在表中?

停止 fast-csv 节点模块的流读取

什么是 C++ 中的流?

将零移到最后:为啥我的 Python 代码未能通过 CodeWars 中的测试?

为啥我的 Cocoa 应用程序中的某些行需要永远运行?

当我的包是嵌套依赖项时,某些文件未安装,即使它们在作为直接依赖项添加时已安装