WSO2 序列的单元测试用例

Unit Test Case for WSO2 Sequences

我正在尝试通过参考 WSO2 Blog 为序列编写单元测试,但博文中有不相关的代理服务测试用例。 有没有办法只为序列编写单元测试。

希望您正在使用 Integration Studio 进行开发。如果是这样,这将是一件容易的事。请按照以下步骤在 WSO2 EI 中测试序列。

  1. 通过 Integration Studio 为您的解决方案创建序列。在这里,我将使用以下示例工件。简单地说,此序列将在中介内创建一个 JSON 有效载荷。
<sequence name="sample" trace="disable" xmlns="http://ws.apache.org/ns/synapse">
    <payloadFactory media-type="json">
        <format>{
            "Hello" : "World"
            }
        </format>
        <args/>
    </payloadFactory>
</sequence>
  1. 右键单击序列,然后 select 新建 > 单元测试套件 为您的序列创建单元测试套件。
  2. 打开位于 test 目录中的已创建测试套件文件。
  3. 向创建的测试套件添加一个断言,如下所示。在这里您可以使用 Integration Studio 的图形编辑器。
<unit-test>
    <artifacts>
        <test-artifact>
            <artifact>/testConfigs/src/main/synapse-config/sequences/sample.xml</artifact>
        </test-artifact>
        <supportive-artifacts/>
        <registry-resources/>
        <connector-resources/>
    </artifacts>
    <test-cases>
        <test-case name="sampleTest">
            <input/>
            <assertions>
                <assertEquals>
                    <actual>$body</actual>
                    <expected><![CDATA[{
                                "Hello" : "World"
                                }]]>
                    </expected>
                    <message>Actual and Expected are not matched</message>
                </assertEquals>
            </assertions>
        </test-case>
    </test-cases>
    <mock-services/>
</unit-test>

  1. 然后右键单击测试套件和select 运行 单元测试 选项。
  2. Select 选择本地或远程 运行 测试套件。 (出于测试目的,请使用本地选项。Integration Studio 将 运行 使用嵌入式 WSO2 EI 服务器进行单元测试)

您可以在工具控制台看到序列测试的测试总结报告如下。

[INFO] ------------------------------------------------------------------------
[INFO] U N I T - T E S T  R E P O R T
[INFO] ------------------------------------------------------------------------
[INFO] Start Time: 2020-07-29 21:27:47
[INFO] Test Run Duration: 3 seconds
[INFO] Test Summary: 
[INFO] 
[INFO] Test Suite Name: sample.xml
[INFO] ==============================================
[INFO] Pass Test Cases: 1
[INFO] Failure Test Cases: 0
[INFO] 
[INFO] +------------------------+----------------+---------------+---------------+
[INFO] |   TEST CASE            |   DEPLOYMENT   |   MEDIATION   |   ASSERTION   |
[INFO] +========================+================+===============+===============+
[INFO] | Test Case - sampleTest |    PASSED      |    PASSED     |    PASSED     |
[INFO] +------------------------+----------------+---------------+---------------+

此外,您可以使用此测试框架测试 assert Synapse、Axis2、Transport、$body、$httpVersion、$statusCode 表达式。请参阅此 documentation 了解更多详情。