के साथ अंतिम विधि का मज़ाक उड़ाते हुए मैं अंतिम विधि ResourceBundle.getString()
पर कॉल करने का प्रयास कर रहा हूं। PowerMock 1.4.12 और EasyMock 3.1 के साथ, कॉल का मज़ाक उड़ाया नहीं जा रहा है; इसके बजाय, "असली" विधि कहा जाता है।PowerMock + EasyMock
मेरा परीक्षण वर्ग: BeanBeingTested में
@RunWith(PowerMockRunner.class)
@PrepareForTest(ResourceBundle.class)
public class TestSuite {
@Before
public void setUp() throws Exception {
ResourceBundle resourceBundleMock = PowerMock.createNiceMock(ResourceBundle.class);
expect(resourceBundleMock.getString(BundleConstants.QUEUE)).andReturn("Queue");
PowerMock.replay(resourceBundleMock);
beanBeingTested.setMessages(resourceBundleMock);
}
...
}
कोड:
private ResourceBundle messages;
...
String label = messages.getString(BundleConstants.QUEUE);
त्रुटि संदेश:
java.util.MissingResourceException: Can't find resource for bundle $java.util.ResourceBundle$$EnhancerByCGLIB$$e4a02557, key Queue
at java.util.ResourceBundle.getObject(ResourceBundle.java:384)
at java.util.ResourceBundle.getString(ResourceBundle.java:344)
at com.yoyodyne.BeanBeingTested.setUpMenus(BeanBeingTested.java:87)
जब मैं परीक्षण का मामला के माध्यम से कदम, डीबगर के प्रकार से पता चलता beanBeingTested.messages
"वर्ग java.util.ResourceBundle के लिए EasyMock" के रूप में, तो नकली corr इंजेक्शन है ectly। (इसके अलावा, पर expect()
कॉल के दौरान कॉल के दौरान कॉल पर कोई त्रुटि नहीं है)।
, मैं निम्नलिखित त्रुटि मिलती है:
java.lang.AssertionError:
Unexpected method call handleGetObject("Queue"):
getString("Queue"): expected: 1, actual: 0
किसी भी विचार क्या मैं गलत कर रहा हूँ?
धन्यवाद।
मुझे भी एक ही समस्या का सामना करना पड़ रहा है।लेकिन यह अभी भी मदद नहीं कर रहा है। क्या आप केवल अंतिम विधियों या स्थिर तरीकों का जिक्र कर रहे हैं? – Siddharth
@ सिद्धार्थ {{PowerMock.mockStaticNice()}} एक वर्ग की एक स्थिर विधि को झुकाता है, लेकिन बाकी तरीकों को छूता है। यदि यह धागा आपकी मदद नहीं करता है, तो आपको एक नया प्रश्न बनाना चाहिए, क्योंकि ऐसा लगता है कि आपके पास अलग-अलग मुद्दे हैं। – Andy
आपके उत्तर @ एंडी के लिए धन्यवाद। लेकिन इस धागे का विषय अंतिम विधि के बारे में बात करता है लेकिन आप स्थैतिक विधि के बारे में बात कर रहे हैं। क्या मैं कुछ भूल रहा हूँ? मेरी समस्या यह है कि "सार्वजनिक अंतिम शून्य" विधि है जिसे मैं नकल करने की कोशिश कर रहा हूं और परीक्षण नकली के बजाय वास्तविक विधि को बुला रहा है। क्या उपर्युक्त मुद्दा उस व्यक्ति से अलग है जिसके बारे में मैं बात कर रहा हूं? क्षमा करें अगर मुझे कुछ बिंदु याद आया। – Siddharth