我正在尝试通过IOUFlowIssueTest,但给我的错误是MockNetwork尚未初始化,而已初始化。
这是在Corda 4.0上。
class IOUIssueFlowTests {
lateinit var mockNetwork: MockNetwork
lateinit var a: StartedMockNode
lateinit var b: StartedMockNode
@Before
fun setup() {
mockNetwork = MockNetwork(listOf("net.corda.training"),
notarySpecs = listOf(MockNetworkNotarySpec(CordaX500Name("Notary","London","GB"))))
a = mockNetwork.createNode(MockNodeParameters())
b = mockNetwork.createNode(MockNodeParameters())
val startedNodes = arrayListOf(a, b)
startedNodes.forEach { it.registerInitiatedFlow(IOUIssueFlowResponder::class.java) }
mockNetwork.runNetwork()
}
@After
fun tearDown() {
mockNetwork.stopNodes()
}
这是错误-
kotlin.UninitializedPropertyAccessException:lateinit属性嘲笑网络尚未初始化
答案 0 :(得分:0)
我不得不猜测一下:万一UninitializedPropertyAccessException
构造函数抛出异常,我看到的唯一会导致MockNetwork
的地方就是您的拆解方法。
从Kotlin 1.2开始,您可以检查lateinit
变量的初始化状态。因此,您可以执行以下操作:
@After
fun tearDown() {
if(::mockNetwork.isInitialized) {
mockNetwork.stopNodes()
}
}