2015-09-07 12 views
5

मेरे पास निम्न कोड है जो डीबी से वर्तमान काउंटर वैल्यू प्राप्त कर रहा है। फिर यह डीबी में काउंटर अपडेट करता है और फिर फिर यह मान प्राप्त करता है।मैं नकली को अलग-अलग कॉल पर अलग-अलग मूल्य कैसे वापस कर सकता हूं?

int current = DBUtil.getCurrentCount(); 
DBUtil.updateCount(50);// it updates the current count by adding 50 
int latest = DBUtil.getCurrentCount(); 

मैं इस तरह से कि पहले कॉल 100 लौटना चाहिए और दूसरी कॉल 150 लौटना चाहिए मैं PowerMockito कैसे उपयोग कर सकते हैं इस लक्ष्य को हासिल करने के लिए स्थिर तरीकों नकली करना चाहते हैं? मैं PowerMock के साथ टेस्टएनजी, मॉकिटो का उपयोग कर रहा हूं।

+0

'डीबीयूटीटी स्थिर क्यों है? एक उदाहरण इंजेक्ट करें, तो आपको PowerMock की आवश्यकता नहीं है। – durron597

उत्तर

10

मॉकिटो लौटा मूल्य बदलने का समर्थन करता है; यह समर्थन PowerMockito तक फैली हुई है। बस OngoingStubbing.thenReturn(T value, T... values)

OngoingStubbing<T> thenReturn(T value, T... values) 

सेट लगातार वापसी मान का उपयोग जब विधि कहा जाता है लौटा दी है।
उदा:

when(mock.someMethod()).thenReturn(1, 2, 3); 

अनुक्रम का अंतिम वापसी मान (उदाहरण में: 3) लगातार आगे कॉल के व्यवहार निर्धारित करता है।

तो, इस मामले में, आप क्या करेंगे:

PowerMockito.when(DBUtil.getCurrentCount()).thenReturn(100, 150); 

नोट: इस सवाल का जवाब मान लिया गया है कि आप पहले से ही पता static तरीकों उपहास करने के लिए कैसे। यदि आप नहीं करते हैं, तो this question देखें।

संबंधित मुद्दे

 संबंधित मुद्दे