Mule:JUnit测试用例,用于调用处于Mule流中间的服务

Mule:JUnit测试用例,用于调用处于Mule流中间的服务,junit,mule,mule-studio,mule-el,junit-rule,Junit,Mule,Mule Studio,Mule El,Junit Rule,我是JUnit测试用例的新手。请在这个问题上帮助我。我有两个mule流——第一个流将MQ作为入站,它有datamapper来转换xml。对于第一个流输入,我将调用第二个流,其中我们将调用现有服务(SOAP/HTTP)调用。请在下面找到我的JUnit。我能够得到成功的回应。但是我的要求 1.我需要看到变压器的响应从变压器出来。(就像我们在流程中通过记录器组件看到的那样) 2.需要通过JUnit覆盖url(HTTP)(以测试错误场景) 三,。如何控制流并查看流之间的任何响应 为了测试的目的,我将VM

我是JUnit测试用例的新手。请在这个问题上帮助我。我有两个mule流——第一个流将MQ作为入站,它有datamapper来转换xml。对于第一个流输入,我将调用第二个流,其中我们将调用现有服务(SOAP/HTTP)调用。请在下面找到我的JUnit。我能够得到成功的回应。但是我的要求 1.我需要看到变压器的响应从变压器出来。(就像我们在流程中通过记录器组件看到的那样) 2.需要通过JUnit覆盖url(HTTP)(以测试错误场景)

三,。如何控制流并查看流之间的任何响应

为了测试的目的,我将VM替换为入站端点,而不是WMQ。 4.有没有可能在不替换VM的情况下,我们可以通过JUnit TestCase直接用WMQ调用。请在这方面帮助我。 我现在使用的是3.4版本,而不是maven。请帮帮我。提前谢谢。

1)你说的“看”是什么意思。它能工作吗?调试时检查它

2) 您应该使用一个变量来参数化端点,比如

并配置属性占位符,如下所述: 向mule-app.properties添加http.port、http.host和http.path变量

考虑到您必须设置系统属性mode=“OVERRIDE”,然后使用bin/Mule-M-Dhttp.host=您的主机-M-Dhttp.port=您的端口-M-Dhttp.path=您的路径启动Mule服务器

3) 是的,WMQ有一个Java API,您可以使用它与之交互:,通过谷歌搜索,您可能会发现数百个示例


问候。

关于第四个问题。很好,谢谢你的回答。根据上面的链接,我使用配置文件通过JUnit覆盖属性。但在我的例子中,我使用了3个流。在第一个流中,我有wmq,我把消息放在那里。在第二个流中,只有http出站端点可以调用web服务。我可以通过配置文件覆盖所有mq属性,但不确定如何通过JUnit覆盖http url(在第二个流中)。请在这方面帮助我。
    public class Request_SuccessPath extends FunctionalTestCase {
    @Test
    public void BulkRequest () throws Exception {
        MuleClient client = muleContext.getClient();
        System.out.println("test");
        String payload = " <root>  <messageName>str1234</messageName><messageId>12345</messageId><DS>123</DS><</root>";
        MuleMessage reply = client.send ("vm://test",payload ,null);}
@Override
    protected String getConfigResources() {
        // TODO Auto-generated method stub
        return "src/main/app/project.xml";}
          DefaultHttpClient client1 = new DefaultHttpClient();  
    HttpGet httpGet = new HttpGet("http://localhost:7800/service);
    assertNotNull(response);