मैं जॉप्शनपेन स्थिर तरीकों का नकल करने की कोशिश कर रहा हूं, और जावा.लेंग.विरिफाइरर पर फंस गया हूं। सभी संस्करण वर्तमान हैं, क्योंकि मैंने अभी मॉकिटो के लिए पावरमैक और उनकी सभी निर्भरताओं को डाउनलोड किया है।PowerMock के साथ स्थैतिक सिस्टम क्लास का नकल करने की कोशिश कर रहा है VerifyError
मैं कक्षा को लपेटने और रैपर को सबक्लास करने के लिए पिछले प्रश्न के लिए दिए गए उत्तर का उपयोग नहीं कर सकता - यह सब हमारे आवेदन पर है। मैंने इस बिंदु पर पावरमैक में काफी समय लगाया है, और मैं उत्सव के साथ शुरू नहीं करना चाहता हूं।
क्या इस त्रुटि को हल करने का कोई तरीका है? मैंने निर्देशों में "मॉकिंग स्टेटिक मेथड" और "मॉकिंग सिस्टम क्लासेस" दोनों की कोशिश की है। मैं कहीं भी नहीं जा सकता क्योंकि मैंने जो कुछ किया है वह @RunWith (PowerMockRunner.class) और @PrepareForTest (My.class) है।
मैंने पाया कि मैं जेपीनेल को विस्तारित करने वाले वर्ग के किसी भी संदर्भ के साथ किसी मुद्दे पर इसे कम कर सकता हूं। यहाँ मुद्दा बनाने के लिए एक न्यूनतम परीक्षण है (मैं Boffo पर और पर JPanel PrepareForTest के साथ एक ही अपवाद मिल गया है):
: जब मैं परीक्षण चलाने का प्रयासimport javax.swing.JPanel;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.powermock.modules.junit4.PowerMockRunner;
@RunWith(PowerMockRunner.class)
//@PrepareForTest(JPanel.class)
@PrepareForTest(TestCase.Boffo.class)
public class TestCase {
@SuppressWarnings("serial")
public static class Boffo extends JPanel {}
@Test
public void test() throws Exception {
new Boffo();
}
}
यहाँ अपवाद मैं मिलता है
java.lang.VerifyError: (class: javax/swing/plaf/metal/MetalLookAndFeel, method: getLayoutStyle signature:()Ljavax/swing/LayoutStyle;) Wrong return type in function
at javax.swing.UIManager.setLookAndFeel(Unknown Source)
at javax.swing.UIManager.initializeDefaultLAF(Unknown Source)
at javax.swing.UIManager.initialize(Unknown Source)
at javax.swing.UIManager.maybeInitialize(Unknown Source)
at javax.swing.UIManager.getUI(Unknown Source)
at javax.swing.JPanel.updateUI(Unknown Source)
at javax.swing.JPanel.<init>(Unknown Source)
at javax.swing.JPanel.<init>(Unknown Source)
at javax.swing.JPanel.<init>(Unknown Source)
at com.package.TestCase$Boffo.<init>(TestCase.java:17)
at com.package.TestCase.test(TestCase.java:21)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.internal.runners.TestMethod.invoke(TestMethod.java:66)
at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runTestMethod(PowerMockJUnit44RunnerDelegateImpl.java:312)
at org.junit.internal.runners.MethodRoadie$2.run(MethodRoadie.java:86)
at org.junit.internal.runners.MethodRoadie.runBeforesThenTestThenAfters(MethodRoadie.java:94)
at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.executeTest(PowerMockJUnit44RunnerDelegateImpl.java:296)
at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$PowerMockJUnit44MethodRunner.runBeforesThenTestThenAfters(PowerMockJUnit44RunnerDelegateImpl.java:284)
at org.junit.internal.runners.MethodRoadie.runTest(MethodRoadie.java:84)
at org.junit.internal.runners.MethodRoadie.run(MethodRoadie.java:49)
at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.invokeTestMethod(PowerMockJUnit44RunnerDelegateImpl.java:209)
at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.runMethods(PowerMockJUnit44RunnerDelegateImpl.java:148)
at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl$1.run(PowerMockJUnit44RunnerDelegateImpl.java:122)
at org.junit.internal.runners.ClassRoadie.runUnprotected(ClassRoadie.java:34)
at org.junit.internal.runners.ClassRoadie.runProtected(ClassRoadie.java:44)
at org.powermock.modules.junit4.internal.impl.PowerMockJUnit44RunnerDelegateImpl.run(PowerMockJUnit44RunnerDelegateImpl.java:120)
at org.powermock.modules.junit4.common.internal.impl.JUnit4TestSuiteChunkerImpl.run(JUnit4TestSuiteChunkerImpl.java:102)
at org.powermock.modules.junit4.common.internal.impl.AbstractCommonPowerMockRunner.run(AbstractCommonPowerMockRunner.java:53)
at org.powermock.modules.junit4.PowerMockRunner.run(PowerMockRunner.java:42)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
https://groups.google.com/forum/?fromgroups#!topic/powermock/GgUjp6_x3GQ%5B1-25%5D –
देखें मैंने पूरा धागा पढ़ा - मैंने जो देखा वह था कि उत्तर देने से पहले, कोई विषय को किसी अन्य मुद्दे में बदल दिया। अगर यहां कोई जवाब है, तो कृपया मुझे इसे इंगित करें। यह उन कई स्थानों में से एक है जहां मैंने सवाल देखा लेकिन जवाब नहीं दिया। – orbfish