如何在 Cordapp 中对服务和控制器 (kotlin) 进行单元测试?

How to Unit test Service & controller (kotlin) in a Cordapp?

我已经阅读了许多文档来获取 Cordapp 中的单元测试服务和控制器示例,而不是流(已经在 corda 文档中使用)。任何人都可以帮我获得一个实施服务单元测试的示例 cordapp 吗?

尝试查看 github 上的 CordaService Autopayroll 示例。

link: https://github.com/corda/samples-java/tree/master/Features/cordaservice-autopayroll

可以访问此处在测试代码中使用的已注册服务

//Test #1 check if the requestState is being sent to the bank operator behind the scene.
@Test
fun `dummy test`() {
    val future = a.startFlow(RequestFlowInitiator("500", b.info.legalIdentities.first()))
    network.runNetwork()
    val ptx = future.get()
    println("Signed transaction hash: ${ptx.id}")
    listOf(a, bank).map {
        it.services.validatedTransactions.getTransaction(ptx.id)
    }.forEach {
        val txHash = (it as SignedTransaction).id
        println("$txHash == ${ptx.id}")
        assertEquals(ptx.id, txHash)
    }
}

link: https://github.com/corda/samples-kotlin/blob/master/Features/cordaService-autopayroll/workflows-kotlin/src/test/kotlin/net/corda/examples/autopayroll/FlowTests.kt

祝你好运!

我们可以使用 Mockito 模块进行单元测试服务功能和 API 所需的模拟和刺穿。