मुझे फंक्शन लॉजिक वैल्यू पर कब्जा करने के लिए मॉकिटो मिलने का कोई सौभाग्य नहीं है! मैं एक सर्च इंजन इंडेक्स का मजाक उड़ा रहा हूं और एक इंडेक्स बनाने के बजाय, मैं सिर्फ एक हैश का उपयोग कर रहा हूं।
// Fake index for solr
Hashmap<Integer,Document> fakeIndex;
// Add a document 666 to the fakeIndex
SolrIndexReader reader = Mockito.mock(SolrIndexReader.class);
// Give the reader access to the fake index
Mockito.when(reader.document(666)).thenReturn(document(fakeIndex(666))
मैं मनमाने तर्कों का उपयोग नहीं कर सकता क्योंकि मैं प्रश्नों के परिणामों का परीक्षण कर रहा हूं (अर्थात वे कौन से दस्तावेज़ वापस करते हैं)। इसी तरह, मैं एक विशिष्ट मूल्य निर्दिष्ट नहीं करना चाहता और प्रत्येक दस्तावेज़ के लिए एक पंक्ति है!
Mockito.when(reader.document(0)).thenReturn(document(fakeIndex(0))
Mockito.when(reader.document(1)).thenReturn(document(fakeIndex(1))
....
Mockito.when(reader.document(n)).thenReturn(document(fakeIndex(n))
मैंने यूजिंग मॉकिटो पृष्ठ पर कॉलबैक अनुभाग को देखा । दुर्भाग्य से, यह जावा नहीं है और मैं जावा में काम करने के लिए अपनी खुद की व्याख्या नहीं कर सका।
EDIT (स्पष्टीकरण के लिए): मैं एक तर्क X पर कब्जा करने और इसे अपने कार्य में पास करने के लिए मॉकिटो कैसे प्राप्त कर सकता हूं? मैं फ़ंक्शन के लिए एक्स का सटीक मान (या रेफ) चाहता हूं।
मैं सभी मामलों की गणना नहीं करना चाहता हूं, और मनमानी तर्क काम नहीं करेगा क्योंकि मैं अलग-अलग प्रश्नों के लिए अलग-अलग परिणामों के लिए परीक्षण कर रहा हूं।
मॉकिटो पृष्ठ कहता है
val mockedList = mock[List[String]]
mockedList.get(anyInt) answers { i => "The parameter is " + i.toString }
यह जावा नहीं है, और मुझे नहीं पता कि जावा में कैसे अनुवाद किया जाए या जो कुछ भी हुआ वह एक समारोह में पारित हो।
Mockito.when(reader.document(666)).thenReturn(document(fakeIndex(666))
लिए मॉक ऑब्जेक्ट सेटअप करना चाहिए। जब आप कॉल करते हैं तो क्या होता हैreader.document(666)
?