How test parent protected method calling [SOLVED]











up vote
1
down vote

favorite
1












I am trying to test this kind of code :



class SMTPAppenderBase<ILoggingEvent>{

protected void append(ILoggingEvent e){
//someCode
//someCode
sendBuffer();
//someCode
}

protected void sendBuffer(){
//SomeCode
}
}




class SMTPAppender extends SMTPAppenderBase<ILogging>{

//someMethod
}




class CustomAppender extends SMTPAppender{

protected void append(ILoggingEvent e){
//someCode
//someCode
super.append(e)
//someCode
}
}


I need to test how many times super.append(e) is calling from CustomAppender. This must be done in @Test method.



How should I do this? I thought about :




  • Mockito --> mock/spy. But it seems to be difficult with parent AND protected method.


  • Anonym class into CustomAppender -->



    CustomAppender appender = new CustomAppender() {

    @Override
    protected void sendBuffer() {
    //my counter here
    super.sendBuffer();
    }
    };



Thank you for your help.





EDIT : This works in my case



This works in my case :



        CustomAppender appender = new CustomAppender() {

@Override
protected void sendBuffer() {
//my code / counter / collect...
super.sendBuffer(cb, lastEventObject);
}
};


Via inheritance, this method is call in super.append(). Hope this could help some beginner as I am.










share|improve this question









New contributor




Mehdi Benaniba is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
Check out our Code of Conduct.
























    up vote
    1
    down vote

    favorite
    1












    I am trying to test this kind of code :



    class SMTPAppenderBase<ILoggingEvent>{

    protected void append(ILoggingEvent e){
    //someCode
    //someCode
    sendBuffer();
    //someCode
    }

    protected void sendBuffer(){
    //SomeCode
    }
    }




    class SMTPAppender extends SMTPAppenderBase<ILogging>{

    //someMethod
    }




    class CustomAppender extends SMTPAppender{

    protected void append(ILoggingEvent e){
    //someCode
    //someCode
    super.append(e)
    //someCode
    }
    }


    I need to test how many times super.append(e) is calling from CustomAppender. This must be done in @Test method.



    How should I do this? I thought about :




    • Mockito --> mock/spy. But it seems to be difficult with parent AND protected method.


    • Anonym class into CustomAppender -->



      CustomAppender appender = new CustomAppender() {

      @Override
      protected void sendBuffer() {
      //my counter here
      super.sendBuffer();
      }
      };



    Thank you for your help.





    EDIT : This works in my case



    This works in my case :



            CustomAppender appender = new CustomAppender() {

    @Override
    protected void sendBuffer() {
    //my code / counter / collect...
    super.sendBuffer(cb, lastEventObject);
    }
    };


    Via inheritance, this method is call in super.append(). Hope this could help some beginner as I am.










    share|improve this question









    New contributor




    Mehdi Benaniba is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
    Check out our Code of Conduct.






















      up vote
      1
      down vote

      favorite
      1









      up vote
      1
      down vote

      favorite
      1






      1





      I am trying to test this kind of code :



      class SMTPAppenderBase<ILoggingEvent>{

      protected void append(ILoggingEvent e){
      //someCode
      //someCode
      sendBuffer();
      //someCode
      }

      protected void sendBuffer(){
      //SomeCode
      }
      }




      class SMTPAppender extends SMTPAppenderBase<ILogging>{

      //someMethod
      }




      class CustomAppender extends SMTPAppender{

      protected void append(ILoggingEvent e){
      //someCode
      //someCode
      super.append(e)
      //someCode
      }
      }


      I need to test how many times super.append(e) is calling from CustomAppender. This must be done in @Test method.



      How should I do this? I thought about :




      • Mockito --> mock/spy. But it seems to be difficult with parent AND protected method.


      • Anonym class into CustomAppender -->



        CustomAppender appender = new CustomAppender() {

        @Override
        protected void sendBuffer() {
        //my counter here
        super.sendBuffer();
        }
        };



      Thank you for your help.





      EDIT : This works in my case



      This works in my case :



              CustomAppender appender = new CustomAppender() {

      @Override
      protected void sendBuffer() {
      //my code / counter / collect...
      super.sendBuffer(cb, lastEventObject);
      }
      };


      Via inheritance, this method is call in super.append(). Hope this could help some beginner as I am.










      share|improve this question









      New contributor




      Mehdi Benaniba is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      I am trying to test this kind of code :



      class SMTPAppenderBase<ILoggingEvent>{

      protected void append(ILoggingEvent e){
      //someCode
      //someCode
      sendBuffer();
      //someCode
      }

      protected void sendBuffer(){
      //SomeCode
      }
      }




      class SMTPAppender extends SMTPAppenderBase<ILogging>{

      //someMethod
      }




      class CustomAppender extends SMTPAppender{

      protected void append(ILoggingEvent e){
      //someCode
      //someCode
      super.append(e)
      //someCode
      }
      }


      I need to test how many times super.append(e) is calling from CustomAppender. This must be done in @Test method.



      How should I do this? I thought about :




      • Mockito --> mock/spy. But it seems to be difficult with parent AND protected method.


      • Anonym class into CustomAppender -->



        CustomAppender appender = new CustomAppender() {

        @Override
        protected void sendBuffer() {
        //my counter here
        super.sendBuffer();
        }
        };



      Thank you for your help.





      EDIT : This works in my case



      This works in my case :



              CustomAppender appender = new CustomAppender() {

      @Override
      protected void sendBuffer() {
      //my code / counter / collect...
      super.sendBuffer(cb, lastEventObject);
      }
      };


      Via inheritance, this method is call in super.append(). Hope this could help some beginner as I am.







      testing inheritance mocking






      share|improve this question









      New contributor




      Mehdi Benaniba is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.











      share|improve this question









      New contributor




      Mehdi Benaniba is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      share|improve this question




      share|improve this question








      edited yesterday





















      New contributor




      Mehdi Benaniba is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.









      asked 2 days ago









      Mehdi Benaniba

      64




      64




      New contributor




      Mehdi Benaniba is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





      New contributor





      Mehdi Benaniba is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.






      Mehdi Benaniba is a new contributor to this site. Take care in asking for clarification, commenting, and answering.
      Check out our Code of Conduct.





























          active

          oldest

          votes











          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
          });


          }
          });






          Mehdi Benaniba is a new contributor. Be nice, and check out our Code of Conduct.










           

          draft saved


          draft discarded


















          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53372751%2fhow-test-parent-protected-method-calling-solved%23new-answer', 'question_page');
          }
          );

          Post as a guest















          Required, but never shown






























          active

          oldest

          votes













          active

          oldest

          votes









          active

          oldest

          votes






          active

          oldest

          votes








          Mehdi Benaniba is a new contributor. Be nice, and check out our Code of Conduct.










           

          draft saved


          draft discarded


















          Mehdi Benaniba is a new contributor. Be nice, and check out our Code of Conduct.













          Mehdi Benaniba is a new contributor. Be nice, and check out our Code of Conduct.












          Mehdi Benaniba is a new contributor. Be nice, and check out our Code of Conduct.















           


          draft saved


          draft discarded














          StackExchange.ready(
          function () {
          StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53372751%2fhow-test-parent-protected-method-calling-solved%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

          Volksrepublik China

          How to test boost logger output in unit testing?

          Write to the output between two pipeline