看来jMockit可以满足我的需求。也许我可以将这个问题发布到powermock邮件列表中。同时下面就足够了。包learning_mocking_tools.learning_mocking_tools;
包learning_mocking_tools.learning_mocking_tools;
import mockit.*;import org.junit.Assert;import org.junit.Test;class baseService { public int save() { validate(); return 2; } public static int save2() { return 5; } public void validate() { System.out.println("base service save executing..."); }}class ChildService extends baseService { public int save() { System.out.println("child service save executing..."); int x = super.save2(); int y = super.save(); System.out.println("super.save returned " + y); load(); return 1 + y; } public void load() { System.out.println("child service load executing..."); }}@MockClass(realClass = baseService.class)class Mockbase { @Mock public int save() { System.out.println("mocked base"); return 9; }}public class PreventSuperInvocation { @Test public void testSave() throws Exception { Mockbase mockbase = new Mockbase(); Mockit.setUpMock(baseService.class, mockbase); ChildService childService = new ChildService();// int x = childService.save(); Assert.assertEquals(9 + 1, childService.save()); Mockit.tearDownMocks(); }}


