java - Powermock and Mockito. Avoid static initialization for a class while mocking and stubing the same class -


suppose have class named util static fields:

public class util {      public static field = param.getvalue("param1");                   } 

and class param this:

public class param {      public static field = someclass.getvalue("somevalue");  } 

i want mock , stubb param.getvalue("param1") inside util, @ same time want suppress static initialization param class. how can achieve this?

this first attempt it's not working

@runwith(powermockrunner.class) @preparefortest({param.class}) @suppressstaticinitializationfor("py.com.company.param") public class test {       @test      public void testsomemethod() {          powermockito.mockstatic(param.class);          when(param.getvalue("value1")).thenreturn("somevalue1");      }  } 

this working me. no output, , someclass#getvalue if no @suppressstaticinitializationfor:

@runwith(powermockrunner.class) @suppressstaticinitializationfor({"so35047166.param"}) @preparefortest({param.class}) public class utiltest {     @before     public void setup() throws exception {         powermockito.mockstatic(param.class);     }      @test     public void testfoo() throws exception {         final util util = new util();         assertequals("util#foo", util.foo());         assertequals(null, util.field);     } } 

with:

// in package so35047166;  public class util {      public static string field = param.getvalue("param1");      public string foo() {         return "util#foo";     } }  public class param {      public static string field = someclass.getvalue("somevalue");      public static string getvalue(final string in) {         system.out.println("param#getvalue");         return "param#getvalue";     } }  public class someclass {     public static string getvalue(final string in) {         system.out.println("someclass#getvalue");         return "someclass#getvalue";     } } 

Comments

Popular posts from this blog

authentication - Mongodb revoke acccess to connect test database -

r - Update two sets of radiobuttons reactively - shiny -

ios - Realm over CoreData should I use NSFetchedResultController or a Dictionary? -