title: Using power mockito to suppress private static method
body: <p>I have made a small example of my code to illustrate the problem</p>
  
  <pre><code>public class SiteTranslator {
     Integer id;
     //Other fields
  }
  
  public class SiteUtil {
  
    private static SiteTranslator siteTranslator = getSiteTranslator();
  
    private static SiteTranslator getSiteTranslator()
    {
      SiteTranslator siteTranslator;
      //Logic involving network call
      return siteTranslator;
    }
  
    private static String getEnvironment()
    {
      String env = "";
      //Logic
      return env;
    }
  
    public static int getParent(int siteId)
    {
      int parentId = 0;
      //Logic using siteTranslator from getSiteTranslator()
      return parentId;
    }
  }
  
  
  public class SiteUtilTest {
    @Test
    public void test1()
    {
      try
      {
          PowerMockito.suppress(SiteUtil.class.getMethod("getSiteTranslator")); 
          BDDMockito.given(SiteUtil.getParent(1)).willReturn(6);
      }
      catch(Exception e)
      {
          e.printStackTrace();
      }
    }
  }
  </code></pre>
  
  <p>The SiteTranslator object we get from getSiteTranslator() method is used by my public function getParent(). Since getSiteTranslator() requires a network call , it needs to be suppressed. I however get the following error</p>
  
  <pre><code>java.lang.NoSuchMethodException: SiteUtil.getSiteTranslator()
  </code></pre>
  
  <p>I believe the problem is because I'm trying to mock a private static function. However I cannot change it to public. Is there a way to mock the code in its current state.</p>