File Mule:JUnit测试不适用于文件终结点
在Mule服务器下运行flow时,位于C:\vikas\file位置的Message.xml文件成功地移动到C:\vikas\file\error位置File Mule:JUnit测试不适用于文件终结点,file,testing,junit,mule,File,Testing,Junit,Mule,在Mule服务器下运行flow时,位于C:\vikas\file位置的Message.xml文件成功地移动到C:\vikas\file\error位置 <flow name="Demo" doc:name="Demo"> <file:inbound-endpoint path="C:\vikas\file\" responseTimeout="10000" doc:name="File" /> <file:outbound-end
<flow name="Demo" doc:name="Demo">
<file:inbound-endpoint path="C:\vikas\file\"
responseTimeout="10000" doc:name="File" />
<file:outbound-endpoint path="C:\vikas\file\error"
outputPattern="#[function:datestamp:dd-MM-yy]_#[function:systime].xml"
responseTimeout="10000" doc:name="ErrorQueue" />
</flow>
在添加了Thread.sleep after client.dispatch()方法后,我已经修复了它
由于分派是异步方法,Mule需要一些等待时间来完成文件移动过程。在添加了Thread.sleep after client.dispatch()方法后,我已经修复了它
由于分派是异步方法,Mule需要一些等待时间来完成文件移动过程。您是否检查了是否正在将文件成功地读取到
有效负载中?在类路径中是否有vikas/file
,以便getResourceAsString
能够找到它?是的,它正在成功读取文件。您是否检查了是否正在将文件成功读取到有效负载中?您的类路径中是否有vikas/file
,以便getResourceAsString
可以找到它?是的,它正在成功读取文件。仅供参考,我不熟悉Mule,但Camel(非常类似)内置了测试机制,以等待异步消息完成(通过请求vs发送或使用通知程序)。我建议研究Mule的类似机制,这样你就不会有那么多的睡眠。睡眠是让异步测试通过的一种非常脆弱的方式。尝试使用send
而不是dispatch
,这样Mule只会阻塞编写文件所需的时间。John,我在Google上的Mule中没有找到类似的方法。David,client.send无法处理文件,因为出站端点的交换模式为“请求\响应”file://dynamic 不支持。仅供参考,我不熟悉Mule,但Camel(非常类似)内置了测试机制来等待异步消息完成(通过请求vs发送或使用通知程序)。我建议研究Mule的类似机制,这样你就不会有那么多的睡眠。睡眠是让异步测试通过的一种非常脆弱的方式。尝试使用send
而不是dispatch
,这样Mule只会阻塞编写文件所需的时间。John,我在Google上的Mule中没有找到类似的方法。David,client.send无法处理文件,因为出站端点的交换模式为“请求\响应”file://dynamic 不支持。
@Test
public void testFile() throws Exception {
String fileInputPath = "file://C:/vikas/file";
String payload = IOUtils.getResourceAsString(
"Message.xml", this.getClass());
client.dispatch(fileInputPath, payload, null);
MuleMessage result = client.request(
"file://C:/vikas/file/error", 5000);
}
@Test
public void testFile() throws Exception {
String fileInputPath = "file://C:/vikas/file";
String payload = IOUtils.getResourceAsString(
"Message.xml", this.getClass());
client.dispatch(fileInputPath, payload, null);
Thread.sleep(685000);
MuleMessage result = client.request(
"file://C:/vikas/file/error", 5000);
}