同时运行 Munit 和应用程序

问题描述

我需要在 Anypoint Studio 中同时运行 munit 2 和应用程序。

流程如下:

  1. 我们有两个应用程序(项目)A 和 B。应用程序 A 包含 http 侦听器端点流 fA1。当这里接收到数据时,它会将转换后的 JSON 数据发送给第三方,将其命名为 X。

  2. 现在,假设我在应用程序 B 中有流 fB1,其中包含一个 http 侦听器端点,此端点(流 fB1)从 X 接收 JSON 通知。流 fB1 基于此进行一些处理,并将其转换为另一个JSON 格式。该格式被发送到应用程序 A。

  3. 现在,应用程序 A 在 http 侦听器端点流 fA2 接收数据,并基于此进行一些处理。

所以整个流程是 A -> X -> B -> A

问题在于:我正在为整个流程编写 munit。在第 1 点,我提到我们从 A 向应用程序 X 发送数据,X 向应用程序 X 发送数据 B。但是 B 应用程序已关闭,因为 Anypoint 不允许 munit 和应用程序同时运行,因此我无法从X。 为了使它工作,我必须在应用程序和模拟通知munit 中复制应用程序 B 的整个逻辑。他们是否有任何解决方法,以避免将代码从应用程序 B 复制到应用程序 A 的 munit?我尝试了并行部署,但它根本不起作用。

如果你们中的任何人有解决方案或指点,请指导。

解决方法

这不是 Munit 的预期用途。测试应该包含在 Munit 执行中,并且应该模拟所有外部依赖项。

您要做的是对多个应用程序进行系统集成测试。没关系,但它应该在没有 Munit 的情况下完成。

或者,您可以在单独的测试环境中(在 Anypoint Studio 之外)运行其他应用程序并仅执行 Munit。以这种方式测试不会非常确定并且会更脆弱。