#java #corda
#java #corda
Вопрос:
ОШИБКА: java.lang.Ошибка утверждения: ожидается: net.corda.core.transactions.Подписана транзакция, но была: net.corda.core.transactions.Ожидается подписанная транзакция:net.corda.core.transactions.Фактическая подписанная транзакция:net.corda.core.transactions.Подписанная транзакция
Насколько я вижу, как ожидаемые, так и фактические транзакции одинаковы, но они по-прежнему выдают ошибку. Он проходил в других тестах, но внезапно завершился неудачей без какой-либо удовлетворительной информации для отладки. ниже приведен код из моих тестов:
@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()));
}
Комментарии:
1. Вы проверили
equals()
метод дляnet.corda.core.transactions.SignedTransaction
класса? Вы также можете использовать debug для ручного изучения свойств этих объектов.
Ответ №1:
У меня это отлично работает на 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);
}
}