0
我正面临着骡子测试的问题。我只是尝试一下简单的功能测试示例。 以下是我的流程骡子测试中面临的问题
<flow name="muletestFlow1" doc:name="muletestFlow1">
<http:inbound-endpoint exchange-pattern="request-response" host="localhost" port="8081" path="test" doc:name="HTTP"/>
<response>
<object-to-string-transformer />
</response>
<component class="com.org.Square" doc:name="Square"/>
<component class="com.org.Neg doc:name="Neg"/>
</flow>
和下面是我的测试类
@Test
public void testSquareAddInverse() throws Exception {
MuleClient client = muleContext.getClient();
MuleMessage reply = client.send ("http://localhost:8081/test", "3", null, 5000);
assertNotNull(reply);
assertNotNull(reply.getPayload());
assertTrue(reply.getPayload() instanceof String);
String result = (String)reply.getPayload();
assertEquals("-9", result);
如果我运行上面的类作为JUnit测试,然后得到了下面的错误。
java.lang.AssertionError
at org.junit.Assert.fail(Assert.java:92)
at org.junit.Assert.assertTrue(Assert.java:43)
at org.junit.Assert.assertTrue(Assert.java:54)
at com.test.TestEx.testSquareAddInverse(TestEx.java:25)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:622)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20)
at org.junit.internal.runners.statements.RunBefores.evaluate(RunBefores.java:28)
at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:46)
at org.junit.internal.runners.statements.FailOnTimeout$1.run(FailOnTimeout.java:28)
什么是解决方案,请帮助我。 如果我评论此行
assertTrue(reply.getPayload() instanceof String);
然后得到以下错误。
java.lang.ClassCastException: org.mule.transport.http.ReleasingInputStream cannot be cast to java.lang.String
这段代码有什么问题?我怎么解决这个问题。请帮我
在此先感谢
感谢您的答复。我根据您的建议进行了更改。现在我得到了这个错误“导致异常的组件是:DefaultJavaComponent {muletestFlow1.component.3418143}。消息有效载荷的类型为:ContentLengthInputStream” – user3855589
我试过这个使用VM端点,然后我可以成功运行。但我怎么能使用http端点请帮忙 – user3855589
当我在HTTP上调用流时是一个InputStream(准确地说ContenLengthInputStream)时,我回答了有效载荷。这是预期的行为,所以你应该测试。此外,我期望您明确将有效负载转换为字符串的语句也会失败。稍后当我在电脑前时,我会更新自己的答案。 –