gpt4 book ai didi

java - 异常堆栈上的 Mule JUnit 测试

转载 作者:行者123 更新时间:2023-11-30 09:07:40 25 4
gpt4 key购买 nike

我正在尝试在我创建的 Mule Flow 上创建 JUnit 测试,我们在其中测试在未提供文件时是否抛出自定义异常。

目前我正在手动触发 Mule 服务,方法是使用 Java 将文件放入监听目录以触发启动流程的文件端点。然后我评估输出文件以查看流程是否正常工作。有没有办法做同样的事情,但 JUnit 测试组件可以在哪里监听 Mule 服务并捕获异常堆栈有效负载并断言实际和预期的错误消息?

对我正在尝试做的事情给出更多的抽象概念:

@Test
public void testValidExceptionThrown () throws Exception {
MuleClient client = muleContext.getClient();

dropInputFileIntoPlace("control_000001.dat","input/control_000001.dat");

MuleEventContext eventContext = getTestEventContext(client);
MuleMessage message = eventContext.getMessage();
String strActualExceptionMessage = message.getExceptionPayload().getMessage();
String strExpectedMessage = "Custom Exception";

assertEquals("the exception message thrown matches the expected exception message", strExpectedMessage, strActualExceptionMessage);
}

有没有办法让我在使用 Java 手动触发 Mule 流时捕获 eventContext?

最佳答案

您应该像这样使用 MuleClient 将文件发送到您的端点,而不是手动删除文件

muleClient.dispatch("file://D:/test_docs/in", inputFileName, null);

编辑:

发送文件后,如果您的流程在正常过程中或在错误情况下写入 file:outbound-endpoint,您可以这样请求文件:

MuleMessage result = client.request("file://D:/test_docs/out/error", 5000);

记得在client.dispatch() 方法之后使用 Thread.sleep 否则Mule 不会等待流程处理和请求文件发货后尽快。

关于java - 异常堆栈上的 Mule JUnit 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23910743/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com