运行 使用 MockNetwork 进行流测试时,Corda 服务不存在

Corda service does not exist when running flow tests with a MockNetwork

我有一个 CorDapp,我在其中定义了一个 oracle。当 运行 节点正常时,oracle 工作正常。但是,当 运行 使用 MockNetwork 进行流测试时,出现以下异常:

net.corda.core.flows.FlowException: java.lang.IllegalArgumentException: Corda service net.corda.option.oracle.oracle.Oracle does not exist

如何使用 MockNetwork 注册 Corda 服务或让它识别它?

初始化MockNetwork时,您必须将定义服务的包传递为要扫描的CorDapp包之一。所以在你的情况下,你会写:

private val mockNet: MockNetwork = MockNetwork(
    cordappPackages = listOf("net.corda.option.oracle.oracle")
)