次のコードをモックする必要があります。
final MBeanServer mbs = ManagementFactory.getPlatformMBeanServer();
mbs.registerMBean(testMBean, new ObjectName("testObjectName");
次のコード スニペットを使用して、PowerMock を使用して ManagementFactory をモックしています。
クラス レベルでは、次のように構成しました。
@RunWith(PowerMockRunner.class) @PrepareForTest({ ManagementFactory.class })
モック 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 クラスのモックとテストを除いて、私のテスト ケースは機能しています。より良いオプションはありますか?