java - How to mock a list that will have certain values -


मेरे पास एक विधि है:

  उम्मीद (प्रोसेसर। प्रोसेस (arg1, सूची)) ; expectLastCall () anytimes ()।;   

अब, मुझे कुछ मानों को शामिल करने की सूची चाहिए और समस्या ये है कि मूल्यों को सही क्रम में सूची में जोड़ा जाना है, अन्यथा सूची वास्तविक सूची के बराबर नहीं होगी इसलिए मैं सिर्फ एक नई सूची नहीं बना पा रहा हूं और इसमें मूल्य जोड़ सकता हूं, क्योंकि यदि विधि प्रक्रिया ने सूची में मान जोड़ने का क्रम बदल दिया है, तो परीक्षण विफल होगा मैंने इसे करने की कोशिश की

  सूची सूची = बनायें (सूची। वर्ग); (List.add (मान 1)) उम्मीद andReturn (सही)। (Lst.add (मान 2)) उम्मीद andReturn (सही)।   

लेकिन वह यह अपवाद देता है:

  java.lang.AssertionError: अप्रत्याशित विधि कॉल प्रक्रिया (arg, [listvalue1, listvalue2]): प्रक्रिया (arg , इंटरफ़ेस के लिए EasyMock java.util.List): अपेक्षित: 1, वास्तविक: 0   

बहुत बहुत धन्यवाद।

आप IAnswer और EasyMock.getCurrentArguments () का उपयोग कर सकते हैं और फिर सूची की सामग्री मैन्युअल रूप से डालें < पूर्व> अपेक्षित (प्रोसेसर। प्रोसेस (आर्ग 1, सूची)); expectLastCall () anytimes () andAnswer (नई IAnswer। & lt;। ऑब्जेक्ट & gt; () {सार्वजनिक वस्तु जवाब () फेंकता फेंकने योग्य {सूची MyList = (सूची) EasyMock.getCurrentArguments () [1]; // सूची में अपना दावे करते हैं यहाँ (या आवश्यकतानुसार ऑर्डर बदल दें)}});

EasyMock.getCurrentArguments का उपयोग कर () का एक बड़ा दोष यह है कि ऐसा नहीं है कि "refactor-सुरक्षित" (आप इसे परीक्षण टूट जाएगा मापदंडों के आदेश को बदलते हैं)।

आशा है कि यह मदद करता है।

Comments