2010-05-27 7 views
7

Mockito api विधि प्रदान करता है:Mockito कोई और अधिक इंटरैक्शन सत्यापित लेकिन छोड़ ही टिककर खेल

Mockito.verifyNoMoreInteractions(someMock); 

लेकिन यह घोषणा करने के लिए के साथ बातचीत को छोड़कर किसी दिए गए नकली के साथ कि मैं और अधिक बातचीत नहीं करना चाहती Mockito में संभव है इसके गेटर विधि?

सरल परिदृश्य वह है जिसमें मैं परीक्षण करता हूं कि एसयूटी किसी दिए गए मॉक के केवल कुछ गुणों को बदलता है और अन्य गुणों को छोड़ देता है।

उदाहरण में मुझे लगता है कि UserActivationService परीक्षण करना चाहते वर्ग उपयोगकर्ता का एक उदाहरण पर संपत्ति सक्रिय बदल जाता है, लेकिन शामिल नहीं है भूमिका, पासवर्ड, AccountBalance, आदि जैसे गुण के लिए कुछ भी

+0

यह भी देखें http://stackoverflow.com/questions/12013138/mockito-verify-no-more-interactions-with-any-mock – Vadzim

उत्तर

13

कोई इस कार्यक्षमता नहीं वर्तमान में Mockito में है । यदि आपको अक्सर इसकी आवश्यकता होती है तो आप इसे प्रतिबिंब विज़ार्ड्री का उपयोग करके स्वयं बना सकते हैं हालांकि यह थोड़ा दर्दनाक होगा।

मेरे सुझाव तरीकों आप बुलाया नहीं करना चाहते पर बातचीत की संख्या भी अक्सर VerificationMode का उपयोग कर सत्यापित करने के लिए किया जाएगा:

@Test 
public void worldLeaderShouldNotDestroyWorldWhenMakingThreats() { 
    new WorldLeader(nuke).makeThreats(); 

    //prevent leaving nuke in armed state 
    verify(nuke, times(2)).flipArmSwitch(); 
    assertThat(nuke.isDisarmed(), is(true)); 
    //prevent total annihilation 
    verify(nuke, never()).destroyWorld(); 
} 

बेशक WorldLeader एपीआई डिजाइन की संवेदनशीलता यह बहस का मुद्दा हो सकता है, लेकिन जैसा कि एक उदाहरण यह करना चाहिए।