Unable to run Junit case case .Throws error “Actually there were zero interactions with this mock”











up vote
0
down vote

favorite












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.










share|improve this question


























    up vote
    0
    down vote

    favorite












    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.










    share|improve this question
























      up vote
      0
      down vote

      favorite









      up vote
      0
      down vote

      favorite











      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.










      share|improve this question













      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.







      java junit mockito spring-junit






      share|improve this question













      share|improve this question











      share|improve this question




      share|improve this question










      asked Nov 10 at 19:12









      coder

      45




      45
























          1 Answer
          1






          active

          oldest

          votes

















          up vote
          1
          down vote



          accepted










          Your beans you injected into the test do not seem to be Spring managed. What about this?



          @MockBean
          private JmsTemplate jmsTemplate;

          @Autowired
          private ProductService productService;





          share|improve this answer





















            Your Answer






            StackExchange.ifUsing("editor", function () {
            StackExchange.using("externalEditor", function () {
            StackExchange.using("snippets", function () {
            StackExchange.snippets.init();
            });
            });
            }, "code-snippets");

            StackExchange.ready(function() {
            var channelOptions = {
            tags: "".split(" "),
            id: "1"
            };
            initTagRenderer("".split(" "), "".split(" "), channelOptions);

            StackExchange.using("externalEditor", function() {
            // Have to fire editor after snippets, if snippets enabled
            if (StackExchange.settings.snippets.snippetsEnabled) {
            StackExchange.using("snippets", function() {
            createEditor();
            });
            }
            else {
            createEditor();
            }
            });

            function createEditor() {
            StackExchange.prepareEditor({
            heartbeatType: 'answer',
            convertImagesToLinks: true,
            noModals: true,
            showLowRepImageUploadWarning: true,
            reputationToPostImages: 10,
            bindNavPrevention: true,
            postfix: "",
            imageUploader: {
            brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
            contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
            allowUrls: true
            },
            onDemand: true,
            discardSelector: ".discard-answer"
            ,immediatelyShowMarkdownHelp:true
            });


            }
            });














             

            draft saved


            draft discarded


















            StackExchange.ready(
            function () {
            StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53242505%2funable-to-run-junit-case-case-throws-error-actually-there-were-zero-interactio%23new-answer', 'question_page');
            }
            );

            Post as a guest















            Required, but never shown

























            1 Answer
            1






            active

            oldest

            votes








            1 Answer
            1






            active

            oldest

            votes









            active

            oldest

            votes






            active

            oldest

            votes








            up vote
            1
            down vote



            accepted










            Your beans you injected into the test do not seem to be Spring managed. What about this?



            @MockBean
            private JmsTemplate jmsTemplate;

            @Autowired
            private ProductService productService;





            share|improve this answer

























              up vote
              1
              down vote



              accepted










              Your beans you injected into the test do not seem to be Spring managed. What about this?



              @MockBean
              private JmsTemplate jmsTemplate;

              @Autowired
              private ProductService productService;





              share|improve this answer























                up vote
                1
                down vote



                accepted







                up vote
                1
                down vote



                accepted






                Your beans you injected into the test do not seem to be Spring managed. What about this?



                @MockBean
                private JmsTemplate jmsTemplate;

                @Autowired
                private ProductService productService;





                share|improve this answer












                Your beans you injected into the test do not seem to be Spring managed. What about this?



                @MockBean
                private JmsTemplate jmsTemplate;

                @Autowired
                private ProductService productService;






                share|improve this answer












                share|improve this answer



                share|improve this answer










                answered Nov 10 at 20:07









                Sami Altundag

                411




                411






























                     

                    draft saved


                    draft discarded



















































                     


                    draft saved


                    draft discarded














                    StackExchange.ready(
                    function () {
                    StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53242505%2funable-to-run-junit-case-case-throws-error-actually-there-were-zero-interactio%23new-answer', 'question_page');
                    }
                    );

                    Post as a guest















                    Required, but never shown





















































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown

































                    Required, but never shown














                    Required, but never shown












                    Required, but never shown







                    Required, but never shown







                    Popular posts from this blog

                    Full-time equivalent

                    Bicuculline

                    さくらももこ