MuleSoft - 使用 MUnit 进行测试


我们理解单元测试是一种可以测试源代码的各个单元以确定它们是否适合使用的方法。Java程序员可以使用Junit框架来编写测试用例。同样,MuleSoft 也有一个名为 MUnit 的框架,允许我们为 API 和集成编写自动化测试用例。它非常适合持续集成/部署环境。MUnit框架的最大优势之一是我们可以将它与Maven和Surefire集成。

MUnit的特点

以下是 Mule MUnit 测试框架的一些非常有用的功能 -

  • 在MUnit框架中,我们可以使用Mule代码和Java代码来创建Mule测试。

  • 我们可以在 Anypoint Studio 中以图形方式或 XML 形式设计和测试 Mule 应用程序和 API。

  • MUnit 使我们能够轻松地将测试集成到现有的 CI/CD 流程中。

  • 它提供自动生成的测试和覆盖率报告;因此手动工作量很少。

  • 我们还可以使用本地 DB/FTP/邮件服务器,使 CI 过程中的测试更加可移植。

  • 它允许我们启用或禁用测试。

  • 我们还可以使用插件扩展 MUnit 框架。

  • 它允许我们验证消息处理器调用。

  • 借助 MUnit 测试框架,我们可以禁用端点连接器以及流入站端点。

  • 我们可以使用 Mule 堆栈跟踪检查错误报告。

Mule MUnit 测试框架最新版本

MUnit 2.1.4 是 Mule MUnit 测试框架的最新版本。它需要以下硬件和软件要求 -

  • 微软Windows 8+
  • 苹果 Mac OS X 10.10+
  • Linux
  • 爪哇8
  • Maven 3.3.3、3.3.9、3.5.4、3.6.0

它与 Mule 4.1.4 和 Anypoint Studio 7.3.0 兼容。

MUnit 和 Anypoint Studio

正如所讨论的,MUnit 完全集成在 Anypoint studio 中,我们可以在 Anypoint studio 中以图形方式或 XML 形式设计和测试我们的 Mule 应用程序和 API。换句话说,我们可以使用 Anypoint Studio 的图形界面来执行以下操作 -

  • 用于创建和设计 MUnit 测试
  • 用于运行我们的测试
  • 用于查看测试结果以及覆盖率报告
  • 用于调试测试

那么,让我们开始一一讨论每项任务。

创建和设计 MUnit 测试

一旦你开始新项目,它会自动添加一个新文件夹,即src/test/munit到我们的项目中。例如,我们启动了一个新的 Mule 项目test_munit,如下图所示,它在我们的项目下添加了上述文件夹。

设计 MUnit 测试

现在,一旦您开始新项目,有两种基本方法可以在 Anypoint Studio 中创建新的 MUnit 测试 -

  • 通过右键单击流- 在此方法中,我们需要右键单击特定流并从下拉菜单中选择 MUnit。

  • 通过使用向导- 在这种方法中,我们需要使用向导来创建测试。它允许我们为工作区中的任何流程创建测试。

我们将使用“右键单击流程”方式为特定流程创建测试。

首先,我们需要在工作区中创建一个流程,如下所示 -

测试MUnitFlow

现在,右键单击该流程并选择 MUnit 为此流程创建测试,如下所示 -

选择MUnit

它将创建一个以流程所在的 XML 文件命名的新测试套件。在这种情况下,test_munit-test-suite是新测试套件的名称,如下所示 -

流程执行

以下是上述消息流的 XML 编辑器 -

XML编辑器

现在,我们可以通过从 Mule Palette 中拖动MUnit消息处理器来将其添加到测试套件中。

验证断言

如果您想通过向导创建测试,请按照文件 → 新建 → MUnit操作,它将引导您进入以下 MUnit 测试套件 -

MUnit 测试套件

配置测试

在 Mule 4 中,我们有两个新部分,即MUnitMUnit Tools,它们共同拥有所有 MUnit 消息处理器。您可以将任何消息处理器拖动到 MUnit 测试区域中。如下面的屏幕截图所示 -

配置测试

现在,如果您想在 Anypoint Studio 中编辑您的套装或测试的配置,那么您需要按照以下步骤操作 -

步骤1

转到Package Explorer,然后右键单击您的套件或测试的.xml 文件。然后,选择属性

第2步

现在,在“属性”窗口中,我们需要单击“运行/调试设置”。之后单击“新建”

步骤3

在最后一步中,单击“选择配置类型”窗口下的“MUnit”,然后单击“确定”

编辑启动配置

运行测试

我们可以运行测试套件和测试。首先,我们将了解如何运行测试套件。

运行测试套件

要运行测试套件,请右键单击测试套件所在的 Mule Canvas 的空白部分。它将打开一个下拉菜单。现在,单击“运行 MUnit”套件,如下所示 -

运行测试套件

之后我们就可以在控制台看到输出了。

运行测试

要运行特定测试,我们需要选择特定测试并右键单击它。我们将获得与运行测试套件时相同的下拉菜单。现在,单击“运行 MUnit 测试”选项,如下所示 -

运行测试

之后可以在控制台中看到输出。

查看和分析测试结果

Anypoint studio 在左侧资源管理器窗格的MUnit 选项卡中显示 MUnit 测试结果。您可以在绿色中找到成功的测试,在红色中找到失败的测试,如下所示 -

生成报告

我们可以通过查看覆盖率报告来分析我们的测试结果。覆盖率报告的主要功能是提供一个指标,衡量一组 MUnit 测试成功执行了多少 Mule 应用程序。MUnit 覆盖范围基本上基于执行的 MUnit 消息处理器的数量。MUnit 覆盖率报告提供以下指标 -

  • 应用整体覆盖
  • 资源覆盖范围
  • 流量覆盖

要获取覆盖率报告,我们需要单击 MUnit 选项卡下的“生成报告”,如下所示 -

分析测试结果

调试测试

我们可以调试测试套件和测试。首先,我们将了解如何调试测试套件。

调试测试套件

要调试测试套件,请右键单击测试套件所在的 Mule Canvas 的空白部分。它将打开一个下拉菜单。现在,单击“调试 MUnit 套件”,如下图所示 -

调试测试

然后我们就可以在控制台看到输出了。

调试测试

要调试特定测试,我们需要选择特定测试并右键单击它。我们将获得与调试测试套件时相同的下拉菜单。现在,单击“调试 MUnit 测试”选项。如下面的屏幕截图所示。

调试测试