如何使用EasyMock模拟超类调用

时间:2016-02-24 10:11:21

标签: java junit4 easymock

有没有办法用EasyMock模拟超类调用?

我想测试这样的东西。

public class A extends B {

    @Override
    public String getName() {
        String bClassName = super.getName();
        String aClassName = "Class A";
        return aClassName + " -> " + bClassName;
    }
}

public class B {

    public String getName(){
        return "Class B";
    }

}

public class ATest extends TestCase {

    private A a = new A();

    @Test
    public void testGetName() {
        A partialMockA = EasyMock.createMockBuilder(A.class)
                .addMockedMethod("getName").createMock();

//      expect b.getName();

        replay(partialMockA);
        String name = partialMockA.getName();
        assertEquals("Class A -> <MockResult>", name);
        verify(partialMockA);
    }
}

我正在玩partialMocks,但我认为这不是正确的做法。

1 个答案:

答案 0 :(得分:0)

没有。不是EasyMock。您需要添加PowerMock才能执行此操作。例如,你可以抑制超级电话(据我所知,但我手边没有一个例子)。