Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Corda——最终在医院进行的单元测试流程_Corda - Fatal编程技术网

Corda——最终在医院进行的单元测试流程

Corda——最终在医院进行的单元测试流程,corda,Corda,我正在对一个我知道会失败的流进行单元测试 assertFailsWith<JdbcSQLIntegrityConstraintViolationException> { nodeA.issueState(...) // Note, issueState is an extension on StartedMockNode } java.lang.AssertionError:应引发类org.h2.jdbc.JdbcSQLIntegrityConstraintViolatio

我正在对一个我知道会失败的流进行单元测试

assertFailsWith<JdbcSQLIntegrityConstraintViolationException> {
    nodeA.issueState(...) // Note, issueState is an extension on StartedMockNode
}
java.lang.AssertionError:应引发类org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException的异常,但为java.util.concurrent.TimeoutException


测试最终发送到flow hospital的流的正确方法是什么?

我通过断言
TimeoutException
来测试这些流,就像您提到的使用
assertFailsWith
一样。当前的医院逻辑是,如果发生任何数据库错误,包括违反约束,则保持流以供观察。应将逻辑添加到流中,以预检查受约束的字段


因为官方错误是由于流实际上没有异常失败而导致的超时,所以没有办法解决这个问题。

有没有任何原因导致底层异常不会冒泡到流中并从流中抛出?在我看来,因为我们不想给人流失败的印象。是的,有一个错误,但如果再次尝试,这个错误可能会起作用(这就是为观察而保留的流所代表的)。引发异常表示is异常失败,应由客户端处理。
.getOrThrow(Duration.ofSeconds(10))