在 Corda 中使用 TestContainers 进行 API 测试

Posted

技术标签:

【中文标题】在 Corda 中使用 TestContainers 进行 API 测试【英文标题】:API testing with TestContainers in Corda 【发布时间】:2021-12-22 04:21:20 【问题描述】:

我正在编写一个 REST API,它通过 Corda RPC 连接到我的 Corda 节点。我正在尝试使用 TestContainers 创建一个模拟测试 Corda 网络,以便我可以验证我的 REST API 的行为。我知道 Corda 有官方的 docker 镜像。是否有任何关于如何实施的指导?

【问题讨论】:

【参考方案1】:

我会看这个/把它分成两部分。

    服务器端测试 - 测试您的节点 RPC 端点。 客户端测试 - 测试您的其余端点。

对于第一部分,您可以使用 NodeDriver 编写集成测试。使用 NodeDriver,您可以在本地启动节点以运行流程并检查状态更新。 NodeDriver 允许您使用 RPC 端点访问节点。您可以阅读有关 NodeDriver 的更多信息here。

对于第二部分,您可以使用 mockito 之类的东西来模拟 RPC 调用并测试您的客户端逻辑。

这样您就可以轻松地测试客户端和服务器端。

要进行实际的端到端集成测试,您必须使用脚本启动 docker 节点,然后您可以从客户端代码测试方法。

【讨论】:

以上是关于在 Corda 中使用 TestContainers 进行 API 测试的主要内容,如果未能解决你的问题,请参考以下文章

在 gitlab 管道中执行 testcontainer 集成测试

在 Micronaut 应用程序中使用 TestContainer 的测试环境的 ApplicationContext 不起作用

在corda中使用spring security的基本身份验证

使用 Testcontainer 进行 Spring 集成测试 - 数据库在应用程序之后启动

在Corda中构建Irs-demo时出错

在 springboottest 中从默认 applicaton.yml 设置 testcontainer 属性的更好方法