title: mocking of instance void method is working without calling 'expectLastCall' method
body: <p>I just written sample test case, where I would like to mock a void instance method. I am surprised, my test case is passing without calling the expectLastCall method. I would like to know, is calling of expectLastCall is not required while mocking instance void methods?</p>
  
  <p><strong>StringUtil.java</strong></p>
  
  <pre><code>package com.sample.util;
  
  import com.sample.model.MethodNotImplementedException;
  
  public class StringUtil {
      public String toUpperAndRepeatStringTwice(String str) {
          String upperCase = str.toUpperCase();
          sendStringToLogger(upperCase);
          return upperCase + upperCase;
      }
  
      public void sendStringToLogger(String str){
          throw new MethodNotImplementedException();
      }
  }
  </code></pre>
  
  <p><strong>StringUtilTest.java</strong></p>
  
  <pre><code>package com.sample.util;
  
  import static org.junit.Assert.assertEquals;
  
  import org.junit.Test;
  import org.junit.runner.RunWith;
  import org.powermock.api.easymock.PowerMock;
  import org.powermock.core.classloader.annotations.PrepareForTest;
  import org.powermock.modules.junit4.PowerMockRunner;
  
  @RunWith(PowerMockRunner.class)
  @PrepareForTest({ StringUtil.class })
  public class StringUtilTest {
  
      @Test
      public void toUpperAndRepeatStringTwice() {
          StringUtil stringUtil = PowerMock.createPartialMock(StringUtil.class, "sendStringToLogger");
  
          String str = "HELLO PTR";
          stringUtil.sendStringToLogger(str);
          //PowerMock.expectLastCall().times(1);
          PowerMock.replayAll();
  
          String result = stringUtil.toUpperAndRepeatStringTwice("hello ptr");
  
          assertEquals(result, "HELLO PTRHELLO PTR");
      }
  }
  </code></pre>