首页 > 代码库 > 用Powermock在单元测试中使用Swing会造成Swing观感类加载失败,有可能是Swing安全机制造成的

用Powermock在单元测试中使用Swing会造成Swing观感类加载失败,有可能是Swing安全机制造成的

java.lang.VerifyError: (class: javax/swing/plaf/metal/MetalLookAndFeel, method: getLayoutStyle signature: ()Ljavax/swing/LayoutStyle;) Wrong return type in functionat javax.swing.UIManager.setLookAndFeel(UIManager.java:554)at javax.swing.UIManager.initializeDefaultLAF(UIManager.java:1317)at javax.swing.UIManager.initialize(UIManager.java:1406)at javax.swing.UIManager.maybeInitialize(UIManager.java:1394)at javax.swing.UIManager.getUI(UIManager.java:980)at javax.swing.JPanel.updateUI(JPanel.java:109)at javax.swing.JPanel.<init>(JPanel.java:69)at javax.swing.JPanel.<init>(JPanel.java:92)at javax.swing.JPanel.<init>(JPanel.java:100)at javax.swing.JRootPane.createGlassPane(JRootPane.java:528)at javax.swing.JRootPane.<init>(JRootPane.java:348)at javax.swing.JFrame.createRootPane(JFrame.java:255)at javax.swing.JFrame.frameInit(JFrame.java:236)at javax.swing.JFrame.<init>(JFrame.java:203)at com.zte.ican.gui.component.complextable.TComplexTableDemo.main(TComplexTableDemo.java:106)at com.zte.ican.gui.component.complextable.TComplexTableTest.test(TComplexTableTest.java:78)at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)at java.lang.reflect.Method.invoke(Method.java:597)at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:68)at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runTestMethod(PowerMockJUnit44RunnerDelegateImpl.java:310)at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:88)at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:96)at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.executeTest(PowerMockJUnit44RunnerDelegateImpl.java:294)at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTestInSuper(PowerMockJUnit47RunnerDelegateImpl.java:127)at org.powermock.modules.junit4.internal.impl.PowerMockJUnit47RunnerDelegateImpl$PowerMockJUnit47MethodRunner.executeTest(PowerMockJUnit47RunnerDelegateImpl.java:82)at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runBeforesThenTestThenAfters(PowerMockJUnit44RunnerDelegateImpl.java:282)at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:86)at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:49)at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.invokeTestMethod(PowerMockJUnit44RunnerDelegateImpl.java:207)at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.runMethods(PowerMockJUnit44RunnerDelegateImpl.java:146)at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$1.run(PowerMockJUnit44RunnerDelegateImpl.java:120)at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:33)at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:45)at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.run(PowerMockJUnit44RunnerDelegateImpl.java:118)at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.run(JUnit4TestSuiteChunkerImpl.java:101)at org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.run(AbstractCommonPowerMockRunner.java:53)at org.powermock.modules.junit4.PowerMockRunner.run(PowerMockRunner.java:53)at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192) 

 

用Powermock在单元测试中使用Swing会造成Swing观感类加载失败,有可能是Swing安全机制造成的