WSO2 集成工作室:单元测试失败,并显示"服务的操作类型无效"



我有一个简单的API从WSO2教程,并试图运行单元测试在集成工作室使用嵌入式微集成商服务器。

assertEquals失败,出现以下错误。但是当我使用旋度时,我得到了期望响应。下面的错误信息是什么意思?似乎没有收到响应,或者$body有问题。

[INFO] Failed Assertion(s): 
[INFO] +--------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------------------+
[INFO] |   TEST CASE                                |   ASSERT EXPRESSION           |       FAILURE                                                                                        |
[INFO] +============================================+===============================+======================================================================================================+
[INFO] | Test Case - querydoctorCategoryTestSuccess | assertEquals -                | Actual Response:                                                                                     |
[INFO] |                                            |                         $body | Received assert expression:                                                                          |
[INFO] |                                            |                               |                         $body                                                                        |
[INFO] |                                            |                               |                      is not a valid operation type for services                                      |
[INFO] |                                            |                               |                                                                                                      |
[INFO] |                                            |                               | Expected Response:                                                                                   |
[INFO] |                                            |                               | [{"name":"thomascollins","hospital":"grandoakcommunityhospital","category":"surgery","availability": |
[INFO] |                                            |                               | "9.00a.m-11.00a.m","fee":7000.0},{"name":"anneclement","hospital":"clemencymedicalcenter","category" |
[INFO] |                                            |                               | :"surgery","availability":"8.00a.m-10.00a.m","fee":12000.0},{"name":"sethmears","hospital":"pinevall |
[INFO] |                                            |                               | eycommunityhospital","category":"surgery","availability":"3.00p.m-5.00p.m","fee":8000.0}]            |
[INFO] +--------------------------------------------+-------------------------------+------------------------------------------------------------------------------------------------------+

测试套件xml文件:

<unit-test>
<artifacts>
<test-artifact>
<artifact>/SampleServicesConfigs/src/main/synapse-config/api/HealthcareAPI.xml</artifact>
</test-artifact>
<supportive-artifacts>
<artifact>/SampleServices/SampleServicesConfigs/src/main/synapse-config/endpoints/QueryDoctorEP.xml</artifact>
</supportive-artifacts>
<registry-resources/>
<connector-resources/>
</artifacts>
<test-cases>
<test-case name="querydoctorCategoryTestSuccess">
<input>
<request-path>/http://localhost:9008/healthcare/querydoctor/surgery</request-path>
<request-method>GET</request-method>
<request-protocol>http</request-protocol>
</input>
<assertions>
<assertEquals>
<actual>
$body
</actual>
<expected><![CDATA[[
{
"name": "thomas collins",
"hospital": "grand oak community hospital",
"category": "surgery",
"availability": "9.00 a.m - 11.00 a.m",
"fee": 7000.0
},
{
"name": "anne clement",
"hospital": "clemency medical center",
"category": "surgery",
"availability": "8.00 a.m - 10.00 a.m",
"fee": 12000.0
},
{
"name": "seth mears",
"hospital": "pine valley community hospital",
"category": "surgery",
"availability": "3.00 p.m - 5.00 p.m",
"fee": 8000.0
}
]]]></expected>
<message>Body does not match expected value!</message>
</assertEquals>
</assertions>
</test-case>
</test-cases>
<mock-services/>
</unit-test>

我刚刚发现了一个GitHub问题,提到这个问题影响了Integration studio v8.1.0(这是最新的,也是我正在使用的)。看起来已经在5月5日对这个问题进行了修复,所以我认为这个问题将在下一个版本中修复。

您需要清除actualexpected块中的额外换行符。请参考以下内容。

<unit-test>
<artifacts>
<test-artifact>
<artifact>/SampleServicesConfigs/src/main/synapse-config/api/HealthcareAPI.xml</artifact>
</test-artifact>
<supportive-artifacts>
<artifact>/SampleServices/SampleServicesConfigs/src/main/synapse-config/endpoints/QueryDoctorEP.xml</artifact>
</supportive-artifacts>
<registry-resources/>
<connector-resources/>
</artifacts>
<test-cases>
<test-case name="querydoctorCategoryTestSuccess">
<input>
<request-path>/http://localhost:9008/healthcare/querydoctor/surgery</request-path>
<request-method>GET</request-method>
<request-protocol>http</request-protocol>
</input>
<assertions>
<assertEquals>
<actual>$body</actual>
<expected><![CDATA[[{
"name": "thomas collins",
"hospital": "grand oak community hospital",
"category": "surgery",
"availability": "9.00 a.m - 11.00 a.m",
"fee": 7000.0
},
{
"name": "anne clement",
"hospital": "clemency medical center",
"category": "surgery",
"availability": "8.00 a.m - 10.00 a.m",
"fee": 12000.0
},
{
"name": "seth mears",
"hospital": "pine valley community hospital",
"category": "surgery",
"availability": "3.00 p.m - 5.00 p.m",
"fee": 8000.0
}]]]></expected>
<message>Body does not match expected value!</message>
</assertEquals>
</assertions>
</test-case>
</test-cases>
<mock-services/>
</unit-test>

最新更新