我需要模拟以下代码:
final MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
mbs.registerMBean(testMBean, new ObjectName("testObjectName");
我使用 PowerMock 来模拟 ManagementFactory 并使用以下代码片段:
在课堂上,我配置了:
@RunWith(PowerMockRunner.class) @PrepareForTest({ ManagementFactory.class })
创建 Mock MBeanServer 类:
MBeanServer mockMBeanServer = createMock(MBeanServer.class);
使用 EasyMock 创建 Expetation:
EasyMock.expect(ManagementFactory.getPlatformMBeanServer()).andReturn(mockMBeanServer);
在上面的代码中,我收到以下错误:
java.lang.IllegalStateException:在 org.easymock.internal.MocksControl.andReturn(MocksControl.java:218) 的返回值类型不兼容
最后,在尝试了很多之后,我需要忽略这个类:
@PowerMockIgnore( {
"org.apache.commons.logging.*",
"javax.management.*",
})
我的测试用例正在工作,除了模拟和测试 MBean 类。有更好的选择吗?