I am trying to unit test a class. The class is as follows
@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
My productService class is as follows
class ProductService{
@Autowired
JmsTemplate jmsTemplate;
@Value("${queue.name}")
private String queue;
public void send(Item i){
jmsTemplate.convertAndSend(queue,i)
}
}
When i run the above test case i get,
I getting mockito wanted but not invoked, Actually there were zero interactions with this mock. But Argument passed to convertAndSend method match can anyone suggest some solutions.