作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我们有一个 Mule 应用程序,它有 6 个或 7 个流,每个流大约有 5 个组件。
这是设置。
我们将 JMS 请求发送到 ActiveMQ 队列。骡听着。根据消息的内容,我们将其转发到相应的流。
<flow name="MyAPPAutomationFlow" doc:name="MyAPPAutomationFlow">
<composite-source>
<jms:inbound-endpoint queue="MyAPPOrderQ" connector-ref="Active_MQ_1" doc:name="AMQ1 Inbound Endpoint"/>
<jms:inbound-endpoint queue="MyAPPOrderQ" connector-ref="Active_MQ_2" doc:name="AMQ2 Inbound Endpoint"/>
</composite-source>
<choice doc:name="Choice">
<when expression="payload.getProcessOrder().getOrderType().toString().equals("ANC")" evaluator="groovy">
<processor-chain>
<flow-ref name="ProcessOneFLow" doc:name="Go to ProcessOneFLow"/>
</processor-chain>
</when>
<when....
...........
</choice>
</flow>
<flow name="ProcessOneFLow" doc:name="ProcessOneFLow">
<vm:inbound-endpoint exchange-pattern="one-way" path="ProcessOneFLow" responseTimeout="10000" mimeType="text/xml" doc:name="New Process Order"/>
<component doc:name="Create A">
<spring-object bean="createA"/>
</component>
<component doc:name="Create B">
<spring-object bean="createB"/>
</component>
<component doc:name="Create C">
<spring-object bean="createC"/>
</component>
<component doc:name="Create D">
<spring-object bean="createD"/>
</component>
</flow>
<spring:beans>
<spring:import resource="classpath:spring/service.xml"/>
<spring:bean id="createA" name="createA" class="my.app.components.CreateAService"/>
<spring:bean id="createB" name="createB" class="my.app.components.CreateBService"/>
<spring:bean id="createC" name="createC" class="my.app.components.CreateCService"/>
<spring:bean id="createD" name="createD" class="my.app.components.CreateDService"/>
......
......
</spring:beans>
最佳答案
Mule 应用程序的功能测试与测试依赖于外部资源(如数据库或 JMS 代理)的任何应用程序没有什么不同,因此您需要使用与标准应用程序相同的技术。
通常这意味着使用内存实现将资源 stub ,例如用于数据库的 HSQLDB 或用于 JMS 的 transient ActiveMQ 内存代理。对于 Mule 应用程序,这意味着将您的配置模块化,以便在单独的文件中定义“实时”传输,在测试时将其替换为包含内存中变体的文件。
要验证 Mule 与资源的交互是否正确,您可以使用其 Java 客户端(例如 JDBC 或 JMS)直接读取资源,如果您想确保纯粹的非 Mule 客户端在读取 Mule 时没有问题,这很好已调度,或使用 MuleClient 从这些资源中读取或创建使用这些资源并将消息传递到 <test:component>
的流。 .
FYI These different techniques are explained and demonstrated in chapter 12 of Mule in Action, second edition.
关于esb - Mule 功能测试 - 完全糊涂,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13609988/
我是一名优秀的程序员,十分优秀!