2010-08-27 7 views
26

मैं एक विरासत जेएएएस/एलडीएपी लॉगिन मॉड्यूल का परीक्षण करने के लिए मॉकिटो का उपयोग कर रहा हूं।मॉकिटो का उपयोग करके, मैं एक शून्य विधि पर कॉलबैक ऑब्जेक्ट को कैसे रोकूं?

void handle(javax.security.auth.callback.Callback[] callbacks) 

मैं callbacks उम्मीद कर रहा हूँ एक NameCallback है, जो वस्तु परीक्षा उत्तीर्ण हेरफेर किया जा करने की जरूरत है शामिल करने के लिए:

javax.security.auth.callback.CallbackHandler इंटरफ़ेस समारोह को परिभाषित करता है।

क्या यह प्रभावी ढंग से नकल करने का कोई तरीका है, या क्या मैं CallbackHandler के एक स्थिर कार्यान्वयन के साथ बेहतर होगा?

उत्तर

33

void लौटने कार्यों के लिए, doAnswer()

doAnswer(...).when(mockedObject).handle(any(Callback[].class)); 

और एक Answer करता है कि अवरोधन doAnswer को पैरामीटर के रूप में जाना चाहिए, उदाहरण के लिए उपयोग करें एक अनाम वर्ग के रूप में:

new Answer() { 
    public Object answer(InvocationOnMock invocation) { 
     Object[] args = invocation.getArguments(); 
     Mock mock = invocation.getMock(); 
     return null; 
    }} 

इस मामले args में सरणी Callback[] हो जाएगा!