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 测试框架的最新版本。它需要以下硬件和软件要求 −
- MS Windows 8+
- Apple Mac OS X 10.10+
- Linux
- Java 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,您可以在下图中看到,它在我们的项目下添加了上述文件夹。

现在,一旦您启动了新项目,就有两种基本方法可以在 Anypoint Studio 中创建新的 MUnit 测试 −
通过右键单击流程 − 在此方法中,我们需要右键单击特定流程并从下拉菜单中选择 MUnit。
通过使用向导 − 在此方法中,我们需要使用向导来创建测试。它允许我们为工作区中的任何流程创建测试。
我们将使用"右键单击流程"的方式为特定流程创建测试。
首先,我们需要在工作区中创建一个流程,如下所示 −

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

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

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

现在,我们可以将 MUnit 消息处理器从 Mule Palette 拖拽到测试套件中。

如果您想通过向导创建测试,请按照 File → New → MUnit,它将引导您进入以下 MUnit 测试套件 −

配置测试
在 Mule 4 中,我们有两个新部分,即 MUnit 和 MUnit Tools,它们共同包含所有 MUnit 消息处理器。您可以将任何消息处理器拖放到 MUnit 测试区域中。它显示在下面的屏幕截图中 −

现在,如果您想在 Anypoint Studio 中编辑您的套件或测试的配置,则需要按照以下步骤 −
步骤 1
转到 Package Explorer 并右键单击您的套件或测试的 .xml 文件。然后,选择 属性。
步骤 2
现在,在属性窗口中,我们需要单击 运行/调试设置。之后单击新建。
步骤 3
最后一步,单击选择配置类型窗口下的MUnit,然后单击确定。

运行测试
我们可以运行测试套件以及测试。首先,我们将了解如何运行测试套件。
运行测试套件
要运行测试套件,请右键单击测试套件所在的 Mule Canvas 的空白部分。它将打开一个下拉菜单。现在,单击 运行 MUnit 套件,如下所示 −

稍后,我们可以在控制台中看到输出。
运行测试
要运行特定测试,我们需要选择特定测试并右键单击它。我们将获得与运行测试套件时相同的下拉菜单。现在,单击 Run MUnit Test 选项,如下所示 −

之后,可以在控制台中看到输出。
查看和分析测试结果
Anypoint Studio 在左侧资源管理器窗格的 MUnit 选项卡 中显示 MUnit 测试结果。您可以用绿色找到成功的测试,用红色找到失败的测试,如下所示 −

我们可以通过查看覆盖率报告来分析我们的测试结果。覆盖率报告的主要功能是提供一个指标,表明一组 MUnit 测试已成功执行了多少 Mule 应用程序。 MUnit 覆盖率基本上基于执行的 MUnit 消息处理器的数量。MUnit 覆盖率报告提供了以下指标 −
- 应用程序整体覆盖率
- 资源覆盖率
- 流程覆盖率
要获取覆盖率报告,我们需要单击 MUnit 选项卡下的"生成报告",如下所示 −

调试测试
我们可以调试测试套件以及测试。首先,我们将了解如何调试测试套件。
调试测试套件
要调试测试套件,请右键单击测试套件所在的 Mule Canvas 的空白部分。它将打开一个下拉菜单。现在,单击 Debug MUnit Suite,如下图所示 −

然后,我们可以在控制台中看到输出。
调试测试
要调试特定测试,我们需要选择特定测试并右键单击该测试。我们将获得与调试测试套件时相同的下拉菜单。现在,单击 Debug MUnit Test 选项。它显示在下面的屏幕截图中。
