Java Powermock未返回正确的对象静态方法

Java Powermock未返回正确的对象静态方法,java,easymock,powermock,Java,Easymock,Powermock,我正在使用PowerMock尝试用静态方法模拟最后一个类,但每当我的代码调用MyClass.getInstance()时,它就会返回null 在我的测试中,我对测试类进行了注释 @RunWith(PowerMockRunner.class) @PrepareForTest(MyClass.class) 在制作mock的方法中,我执行以下操作 suppressConstructor(MyClass.class); PowerMock.mockStatic(MyClass.class); moc

我正在使用PowerMock尝试用静态方法模拟最后一个类,但每当我的代码调用
MyClass.getInstance()
时,它就会返回
null

在我的测试中,我对测试类进行了注释

@RunWith(PowerMockRunner.class)
@PrepareForTest(MyClass.class) 
在制作mock的方法中,我执行以下操作

suppressConstructor(MyClass.class);
PowerMock.mockStatic(MyClass.class);
mockClass = PowerMock.createMock(MyClass.class);
expect(MyClass.getInstance()).andReturn(mockClass);
是否应该
PowerMock.createMock
创建一个
EasyMock


当我在代码中调用它(
MyClass.getInstance()
)时,它总是返回
null
,但是如果我单步通过测试类,变量
mockClass
就会被实例化。

看起来你使用的是EasyMocking方法。在调用
getInstance()
方法之前是否重播了MyClass,例如

PowerMock.replay(MyClass.class);
?

从PowerMock文档中:

使用PowerMock.mockStatic(包含StaticMethod.class的类)来模拟此类的所有方法。 使用PowerMock.replay(包含StaticMethod.class的类)将类更改为replay模式。 使用PowerMock.verify(包含StaticMethod.class的类)将类更改为验证模式


你好像在用轻松的方式嘲弄我。在调用
getInstance()
方法之前是否重播了MyClass,例如

PowerMock.replay(MyClass.class);
?

从PowerMock文档中:

使用PowerMock.mockStatic(包含StaticMethod.class的类)来模拟此类的所有方法。 使用PowerMock.replay(包含StaticMethod.class的类)将类更改为replay模式。 使用PowerMock.verify(包含StaticMethod.class的类)将类更改为验证模式


这确实是我重放
mockClass
而不是
MyClass.class
的问题。这确实是我重放
mockClass
而不是
MyClass.class