फेंकता है मैं एक मॉक ऑब्जेक्ट बनाने के लिए मॉकिटो का उपयोग करने की कोशिश कर रहा हूं जो एक मॉक ऑब्जेक्ट से वापस आ जाता है। विशेष रूप से, मैं PlayerConnection
ऑब्जेक्ट का नकल करने की कोशिश कर रहा हूं कि मेरा प्रोग्राम आईपी पता पुनर्प्राप्त करने के लिए उपयोग कर सकता है।मॉकिटो जब()। फिर रीटर्न() nullpointerExceptions
आप इस PlayerConnection object
here के बारे में अधिक जानकारी प्राप्त कर सकते हैं। यह InetSocketAddress
देता है जो उसके बाद InetAddress
लौटा सकता है जो खिलाड़ी के आईपी के साथ String
वापस कर सकता है। लेकिन मैं इसे दूर नहीं कर सकता, क्योंकि मेरा पहला when(class.function()).thenReturn(returnVariable)
NullPointerException
फेंकता है। यहाँ मेरी कोड है:
/**
* Creates a partial mock of a connection that can return an ip address.
*
* @param String
* The IP to return when the connection gets asked.
* @return
*/
private PlayerConnection newConnection(String ipString)
{
PlayerConnection playerConnection = mock(PlayerConnection.class);
InetSocketAddress inetSocketAddress = mock(InetSocketAddress.class);
InetAddress inetAddress = mock(InetAddress.class);
when(playerConnection.getAddress()).thenReturn(inetSocketAddress);
when(inetSocketAddress.getAddress()).thenReturn(inetAddress);
when(inetAddress.getHostAddress()).thenReturn(ipString);
return playerConnection;
}
और यहाँ स्टैक ट्रेस है, when(playerConnection.getAddress()).thenReturn(inetSocketAddress)
में उत्पन्न:
Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.001 sec <<< FAILURE!
ruleResponseTest(com.github.heartsemma.communitywall.ConnectionChecks.RuleManagerTest) Time elapsed: 0.001 sec <<< ERROR!
java.lang.NullPointerException
at java.net.InetSocketAddress$InetSocketAddressHolder.access$500(InetSocketAddress.java:56)
at java.net.InetSocketAddress.getAddress(InetSocketAddress.java:334)
at com.github.heartsemma.communitywall.ConnectionChecks.RuleManagerTest.newConnection(RuleManagerTest.java:99)
at com.github.heartsemma.communitywall.ConnectionChecks.RuleManagerTest.ruleResponseTest(RuleManagerTest.java:44)
संपादित करें:
मैं when().thenReturn()
के बजाय doReturn().when().function()
करने के लिए अपने स्टब्स में बदला गया है NullPointerExceptions
को रोकने के लिए, और ऐसा हुआ, लेकिन अब मुझे मॉकिटो से कस्टम UnfinishedStubbingExceptions
मिल रहा है।
उपयोगी त्रुटि कोड कहता है कि मेरे पास कहीं अधूरा स्टब है, लेकिन मुझे नहीं पता कि यह कहां है। त्रुटि दूसरी doReturn()
विधि पर होती है।
/**
* Creates a partial mock of a connection that can return an ip address.
*
* @param ipString The IP to return.
*
* @return A PlayerConnection object that can return a Host Address of the ipString but nothing else.
*/
private PlayerConnection newConnection(String ipString)
{
PlayerConnection playerConnection = mock(PlayerConnection.class);
InetSocketAddress inetSocketAddress = mock(InetSocketAddress.class);
InetAddress inetAddress = mock(InetAddress.class);
doReturn(inetSocketAddress).when(playerConnection).getAddress();
doReturn(inetAddress).when(inetSocketAddress).getAddress();
doReturn(ipString).when(inetAddress).getHostAddress();
return playerConnection;
}
http: // stackoverflow देखें।com/प्रश्न/34308877/कैसे करने वाली नकली विधि-कॉल-एंड-वापसी-मान-बिना चलने-विधि। – Tunaki
मुझे समझ में नहीं आता है। आपके पास एक ही त्रुटि है, और वही जवाब 'doReturn (inetSocketAddress) का उपयोग करना है। जब (प्लेयरकनेक्शन) .getAddress() 'जैसा कि उल्लेख किया गया है, और आप ऐसा नहीं कर रहे हैं (तो आप कैसे कह सकते हैं कि इससे मदद नहीं मिली?)। – Tunaki
क्षमा करें; मेरा कहना था कि यह एक और त्रुटि हुई। मूल पोस्ट संपादन। –