WSO2 序列的单元测试用例
Unit Test Case for WSO2 Sequences
我正在尝试通过参考 WSO2 Blog 为序列编写单元测试,但博文中有不相关的代理服务测试用例。
有没有办法只为序列编写单元测试。
希望您正在使用 Integration Studio 进行开发。如果是这样,这将是一件容易的事。请按照以下步骤在 WSO2 EI 中测试序列。
- 通过 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>
- 右键单击序列,然后 select 新建 > 单元测试套件 为您的序列创建单元测试套件。
- 打开位于
test
目录中的已创建测试套件文件。
- 向创建的测试套件添加一个断言,如下所示。在这里您可以使用 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>
- 然后右键单击测试套件和select 运行 单元测试 选项。
- 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 了解更多详情。
我正在尝试通过参考 WSO2 Blog 为序列编写单元测试,但博文中有不相关的代理服务测试用例。 有没有办法只为序列编写单元测试。
希望您正在使用 Integration Studio 进行开发。如果是这样,这将是一件容易的事。请按照以下步骤在 WSO2 EI 中测试序列。
- 通过 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>
- 右键单击序列,然后 select 新建 > 单元测试套件 为您的序列创建单元测试套件。
- 打开位于
test
目录中的已创建测试套件文件。 - 向创建的测试套件添加一个断言,如下所示。在这里您可以使用 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>
- 然后右键单击测试套件和select 运行 单元测试 选项。
- 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 了解更多详情。