如何使用EasyMock模拟受保护的方法?

时间:2013-06-04 21:37:22

标签: java protected easymock

public class A{
    protected Integer methodA(String a){
        //some code is included;
        return new Integer(1);
    }
}
public class B extends B{
    String b = "AnyThing";
    methodA(b);
    //there are also other methods that will be tested
}

以下是部分测试代码

B classUnderTest = createMockBuild(B.class).addMockedMethod(B.class.getDeclaredMethod(methodA(), String.class)).createMock;
expect(classUnderTest.methodA(anyObject(String.class))).andReturn(new Integer(1));

第二段代码的第二行甚至无法通过编译。哪里错了?

1 个答案:

答案 0 :(得分:0)

简,关于你的主要问题,行

expect(classUnderTest.methodA(anyObject(String.class))).andReturn(new Integer(1));
如果@Test类与您正在测试的主题位于同一package,则

将成功编译 - 在这种情况下,类AB(如果{{1} }})。受保护的实例方法仅对同一包中的类可见。

祝你好运!