Невозможно запустить кейс для Junit. Выдает ошибку «На самом деле с этим макетом не было никаких взаимодействий» - PullRequest
0 голосов
/ 10 ноября 2018

Я пытаюсь провести юнит-тест класса. Класс выглядит следующим образом

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(classes=MyConfig.class)
Class MyTest{

 @Mock
 pirvate JmsTemplate jmsTemplate;


  @InjectMocks
  private final ProductService productService= new ProductService();

  @Test
      public void sendItem(){
             Item i = new Item();
             i.name("xyz");
            productService.send(i)
            verfity(jmsTemplate).convertAndSend("product.test",i)
      }
}

@Configuration
@PropertySource(classpath:application-test.properties)
class MyConfig{

  @Bean
  ProductService productService(){
    return new ProductService();
  }

  @Bean
  JmsTemplate jmsTemplate(){
     return new JmsTemplate();
  }
}

resources folder under test package has

application.properties, contents of it are

spring.profiles.active=test

And application-test.properties has
queue.name=product.test

Мой класс productService выглядит следующим образом

class ProductService{
  @Autowired
    JmsTemplate jmsTemplate;

   @Value("${queue.name}")
    private String queue;

    public void send(Item i){
         jmsTemplate.convertAndSend(queue,i)
    }
}

Когда я запускаю приведенный выше тестовый пример, я получаю,

Я хотел получить мокито, но не вызывать, На самом деле не было никаких взаимодействий с этим макетом. Но аргумент передан методу convertAndSend Кто-нибудь может предложить какие-то решения.

1 Ответ

0 голосов
/ 10 ноября 2018

Ваши бобы, которые вы вводили в тест, похоже, не управляются Spring.Как насчет этого?

@MockBean
private JmsTemplate jmsTemplate;

@Autowired
private ProductService productService;
...