当前位置: 首页 > 知识库问答 >
问题:

onexception子句在测试用例中不起作用

柯昆
2023-03-14

我使用该子句捕获项目上发生的所有异常,以自定义其行为。

    <onException>
        <exception>java.lang.Exception</exception>
            <handled><constant>true</constant></handled>
            <process ref="prepareExceptionProcessor"/>
            <to uri="activemq:int.sendmail" />
    </onException>
    <route id="int.uploadFile">
        <from uri="[[toFilepath.forUpload.read]]"/>
        <process ref="generateFileNameFtpProcessor"/>
        <setHeader headerName="CamelFileName"><simple>[[fileName.toFtp]]</simple></setHeader>
        <to id="uploadFile" uri="[[upload.toFtp]]"/>
    </route>

在测试中,uri“upload.toftp”设置了一个不存在的连接,因此它们抛出了一个异常。测试仅启动上下文并等待消息插入队列“activeMQ:int.sendmail”

当我在Fuse上安装项目时, 工作良好,但当我执行一个引发某种类型异常的测试用例时, 就不工作了。

这是在激发异常时显示测试用例的日志。

共有1个答案

汪甫
2023-03-14

看起来您自定义的au.com.inte.processor.ValidateExceptionProcessor正在抛出一个异常(第22行)。这个类的代码是什么样子的?尝试删除自定义处理器以测试是否存在此问题。然后,您可以检查消息是否最终出现在您的队列中。此外,您可能/可能不希望根据需要将异常处理程序更改为catch Throwable。即:

 <onException>
    <exception>java.lang.Throwable</exception>
        <handled><constant>true</constant></handled>
        <to uri="activemq:int.sendmail" />
</onException>

此外,如果您刚刚开始测试的上下文,您可能需要使用模拟endpoint

 <onException>
    <exception>java.lang.Throwable</exception>
        <handled><constant>true</constant></handled>
        <to uri="mock:error" />
</onException>
 类似资料:
  • 问题内容: 我创建了一个包含3列的数据框:zip,lat,lng 我想选择zip = 00650的经纬度值 因此,我尝试使用: 但是它返回ArrayOutOfBound异常,因为它没有任何值。如果我删除where子句,它将运行良好。 有人可以解释我在做什么错吗? 更新: 数据框架构: 前10行是: 问题答案: 正如你可以在你的方案看是类型的,所以你的查询应该是这样的 更新: 如果您正在使用,则可以

  • 并添加注释 我得到一条消息:没有测试找到test runner JUnit5,并且在Problems选项卡中有SpringBootTest.jar无法读取或者不是有效的ZIP文件 也试过 我也试过: 如果我将字符串myUrl硬编码为“http://localhost:8090”,则测试工作正常,因此问题在于@value不工作

  • 我正在使用NamedParameterJdbcTemboard来运行我的查询。查询如下: 现在,我调用一个web服务,它返回一个ID列表。因此,我使用NamedParameterJdbcTemplate将ID列表映射到“客户ID”。然而,当ID列表达到1000多个时,我遇到了一个问题。我已经了解到,DB将无法处理包含100或1000个以上数据的IN。 由于我只能接收ID列表,您能否建议除了Name

  • 问题内容: 我已经通过两种方式为我的单元测试创​​建了用户: 1)为“ auth.user”创建一个大致如下的灯具: 我省去了看似不重要的部分。 2)在setUp函数中使用“ create_user”(尽管我宁愿将所有内容保留在我的Fixture类中): 请注意,两种情况下的密码均为辛普森。 我已验证该信息一次又一次正确地加载到测试数据库中。我可以使用User.objects.get来获取User

  • /Output: 课后,在主装载区内,糖果不能放口香糖。forName(“口香糖”)在创建Cooki后加载Cooki 这是我的代码和结果,找不到口香糖。 书中给出了一个java的Rtti示例,结果如下: 这似乎是一门课。forName()不起作用,无法初始化。