Spring Mockito-@SpyBean on bean和@RabbitListener注释方法创建另一个使用者

Spring Mockito-@SpyBean on bean和@RabbitListener注释方法创建另一个使用者,spring,mockito,Spring,Mockito,我有一个集成测试类,在一个依赖项上面有@SpyBean注释,并使用verify测试调用的数量,但是@SpyBean添加了另一个队列使用者和verify方法,该方法回答没有与mock交互 我已经试过一些mock,Spies,MockBeans的变体。当我@Spy有问题的bean时,我有一个消费者,但没有与mock的交互@SpyBean创建另一个队列使用者,但在一个环境中,测试通过(我没有正确的调用,所以可能队列被mock使用),而在另一个环境中,队列被real(?)类使用,所以方法不被调用。在这两

我有一个集成测试类,在一个依赖项上面有@SpyBean注释,并使用verify测试调用的数量,但是@SpyBean添加了另一个队列使用者和verify方法,该方法回答没有与mock交互

我已经试过一些mock,Spies,MockBeans的变体。当我@Spy有问题的bean时,我有一个消费者,但没有与mock的交互@SpyBean创建另一个队列使用者,但在一个环境中,测试通过(我没有正确的调用,所以可能队列被mock使用),而在另一个环境中,队列被real(?)类使用,所以方法不被调用。在这两种情况下,我都可以看到有问题的方法是由侦听器方法内部的日志输出调用的。我不知道怎么解决它

@Service 
public class MyDependency {

  @RabbitListener(queues = "someQueue")
  public void handleError(Message<?> message) {
      log.info(">>>>>> I'M HERE <<<<<<<<");
      handleFail(message);
  }
}
预期结果是:我有两个handleError方法调用,并且没有创建额外的使用者 实际情况:创建了队列的额外使用者(得到了两个),并且没有使用mock的iteractions,也没有调用方法(mockio这样说),但我可以看到“>>>我在这里
public class IntegrationTest {

  @SpyBean
  MyDependency myDependency;

  @Test
  void shouldPass() {   
    //some code... 
    verify(myDependency, times(2)).handleError(any());
  }
}