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

模拟POJO生产商的方法

奚正谊
2023-03-14

我在这里遵循指南,我成功地在我的beanendpoint上配置了一个生产者,如下所示:

@Produce( uri = "activemq:foo" )
  private MyListener myListener; 

MyListener是:

public interface MyListener {

  @InOnly
  public void send( String message );
}

还有我的豆子:

    public class MyBeanEndpoint {

          @Produce( uri = "activemq:foo" )
          private MyListener myListener; 

          @Handler
          public void doSomething( final Object body ) {
            ...
    }

public void setMyListener( final MyListener myListener ) {
    this.myListener = myListener;
  }

现在,我如何测试这个?我的意思是:我的测试扩展了CamelTestSupport,我用

@Override
  public RouteBuilder createRouteBuilder() {
    return new RouteBuilder() { ... }

也就是说:我复制了camel上下文,但没有配置spring上下文,我希望(如果可能的话)避免实例化它。

如何模拟生产者或使Camel实例化并将此bean注入我的beanendpoint?使用Apache Camel功能(如CamelTestSupport和类似实用程序)测试这种情况的最佳方法是什么?

我的参考测试是:

public class Test extends CamelTestSupport {

  private static BeanEndpoint beanEndpoint

  @BeforeClass
  public static void init() { 
    beanEndpoint.setActivemqMyListener( ??? );
  }

  @Override
  public CamelContext createCamelContext() {
    context = new DefaultCamelContext();
    context.addComponent( "activemq", new SedaComponent() );
    return context;
  }

  @Override
  public RouteBuilder createRouteBuilder() {
    return new RouteBuilder() {

      @Override
      public void configure() throws Exception {

        from( "activemq:foo" )
                .to( "mock:out" );

      }
    };
  }

  @Test
  public void testFooQueue() throws Exception {}

共有1个答案

元英朗
2023-03-14

让Camel创建bean,然后为您配置各种依赖注入等等。

private static BeanEndpoint beanEndpoint

 ...

beanEndpoint = camelContext.getInjector().newInstance(BeanEndpoint.class);
 类似资料:
  • 我的服务等级代码如下: 我的测试课程如下: 在运行测试时,我在给出Mockito的那一行得到了NullPointerException。何时返回条件。我尝试了很多组合,但它仍然提供NPE。我甚至连方法调用都做不到。你能告诉我哪里出了问题吗?

  • 问题内容: 我有一个POJO和一个(当前尚未构建)的类,它将返回它的列表。我想自动生成将POJO作为地图进行访问所需的代码。这是一个好主意吗,是否可以自动执行,并且我需要为要处理的每个POJO手动执行此操作吗? 谢谢,安迪 问题答案: 您可以为此使用Commons BeanUtils 。 更新 :由于由于Android中某些明显的库依赖问题而导致该选项不可行,因此这是一个基本的启动示例,您几乎不需

  • 上面还有第二个问题。当我在Expects块中定义mock类时(如上),似乎只调用了构造函数,而不是,因此没有正确初始化对象。我通过将它移到方法中并在那里实例化该类来解决这个问题。看起来是这样的: 因此,这似乎得到了要调用的正确构造函数,但似乎还在调用。有什么见解吗?

  • 有没有办法确定Kafka制作人为一组特定消息创建的批次数?例如,如果我在一个循环中发送10K条消息,有没有办法检查发送了多少批?我将“batch.size”设置为一个高值,我的期望是消息将被缓冲,并且在我的消费者中看到消息时会有延迟。然而,这似乎是打印几乎立即在我的消费者计划。 批处理时的默认值。尺寸是16384。这是字节数吗?

  • 所以我想做一些事情 但我得到了空异常

  • 在安装到AEM 5.6.1实例之前,我正在使用maven构建和测试我的代码。我已经编写了单元测试,这些测试使用wcm的实现从aem模拟中获益。io和其他需要使用powermockito模拟静态方法的单元测试。 以下是我对aem上下文、sling Mock和powermock的maven依赖关系。 在我的课堂上,我正在为aem上下文设置规则,并准备一些用于模拟的静态类: 当我通过命令行运行mvn测试