Java ApacheCamel重新交付策略Junit测试

Java ApacheCamel重新交付策略Junit测试,java,junit,mockito,apache-camel,Java,Junit,Mockito,Apache Camel,我已将apache camel重新交付策略配置为camel路由之一。我需要编写junit来验证路由在成功和失败场景中是否正常工作 我能够为故障场景编写junit,并且能够通过模拟路由中的服务来返回异常,从而验证是否按照配置发生了最大的重新交付 在积极的场景中,我希望模拟路由中的服务,以便在前3次尝试和最后一次重新交付尝试(4)时返回异常。我希望模拟服务返回预期值,无任何异常。(3次尝试失败,但第4次尝试成功) 我对此做了一些研究,但找不到任何解决方案,我们有没有办法在测试执行期间获得camel重

我已将apache camel重新交付策略配置为camel路由之一。我需要编写junit来验证路由在成功和失败场景中是否正常工作

我能够为故障场景编写junit,并且能够通过模拟路由中的服务来返回异常,从而验证是否按照配置发生了最大的重新交付

在积极的场景中,我希望模拟路由中的服务,以便在前3次尝试和最后一次重新交付尝试(4)时返回异常。我希望模拟服务返回预期值,无任何异常。(3次尝试失败,但第4次尝试成功)


我对此做了一些研究,但找不到任何解决方案,我们有没有办法在测试执行期间获得camel重新交付实例并在运行时更改mock?

一个简单的解决方案,是纯Java解决方案(我的意思是根本不涉及camel),就是使用众所周知的
ThreadLocal
模式()

简要说明,本地模式允许您存储只有特定线程才能访问的数据

在您的特定情况下,服务的模拟实现可以存储在每个查询上递增的(线程绑定的)计数器。 基于当前计数器值,您的服务可以为值1到3返回异常,为值4返回正常响应