Mulesoft 简明教程

MuleSoft - Testing with MUnit

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

Features of MUnit

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

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

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

  3. MUnit 允许我们轻松地将测试集成到现有的 CI/CD 流程中。

  4. 它提供自动生成的测试和覆盖率报告;因此手动工作量最小。

  5. 我们还可以使用本地 DB/FTP/邮件服务器来通过 CI 流程使测试更便携。

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

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

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

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

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

Latest Release of Mule MUnit Testing Framework

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

  1. MS Windows 8+

  2. Apple Mac OS X 10.10

  3. Linux

  4. Java 8

  5. Maven 3.3.3、3.3.9、3.5.4、3.6.0

它与 Mule 4.1.4 和 Anypoint Studio 7.3.0 兼容。

MUnit and Anypoint Studio

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

  1. 创建和设计 MUnit 测试

  2. For running our tests

  3. 查看测试结果以及覆盖率报告

  4. For debugging the tests

因此,让我们开始逐一讨论每项任务。

Creating and Designing MUnit Tests

一旦你启动新项目,它就会自动向我们的项目中添加一个新文件夹,即 src/test/munit 。例如,我们启动了一个名为 test_munit 的新 Mule 项目,你可以在下图中看到,它在我们的项目下添加了上述文件夹。

designing munit tests

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

  1. By Right-Clicking the Flow - 在此方法中,我们需要右键单击特定流,然后从下拉菜单中选择 MUnit。

  2. By Using the Wizard - 在此方法中,我们需要使用向导创建测试。它允许我们为工作空间中的任何流创建测试。

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

首先,我们需要按如下方式在工作空间中创建一个流 -

test munitflow

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

select munit

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

flow execution

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

xml editor

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

validation assert

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

munit test suite

Configuring the test

在 Mule 4 中,我们有两个新部分,分别是 MUnitMUnit Tools ,它们共同拥有所有 MUnit 消息处理器。你可以在你的 MUnit 测试区域中拖动任何消息处理器。在下图中所示 -

configuring the test

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

Step 1

转到 Package Explorer 并右键单击你的套装或测试的 .xml file 。然后,选择 Properties

Step 2

现在,在属性窗口中,我们需要单击 Run/Debug Setting*s. After this click *New

Step 3

最后一步,单击 Select Configuration Type 窗口下的 MUnit ,然后单击 OK

edit launch configuration

Running the Test

我们可以运行测试套件以及测试。首先,我们将看到如何运行测试套件。

Running a Test Suite

对于运行测试套件,右键单击你的测试套件所在的 Mule Canvas 空白部分。它会打开一个下拉菜单。现在,单击 Run MUnit suite ,如下所示 −

running a test suite

稍后,我们可以在控制台中看到输出。

Running a Test

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

running a test

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

Viewing and Analyzing Test Result

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

generate report

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

  1. Application overall coverage

  2. Resource coverage

  3. Flow coverage

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

analyzing test result

Debugging the test

我们可以调试一个测试套件以及一个测试。首先,我们将看到如何调试一个测试套件。

Debugging a Test Suite

要调试一个测试套件,右键单击存放你的测试套件的 Mule Canvas 空白部分。它会打开一个下拉菜单。现在,单击 Debug MUnit Suite ,如下面的图像所示 −

debugging the test

然后,我们可以在控制台中看到输出。

Debugging a Test

要调试一个特定测试,我们需要选择特定测试并右键单击它。我们将会得到与调试测试套件时相同的下拉菜单。现在,单击 Debug MUnit Test 选项。它显示在下面屏幕截图中。

debugging a test