2014-05-14 8 views
5

मेरे पास एक जावा आधारित डेटा एक्सेस परत है जो सोफेबेस के साथ बातचीत करती है। इस परत पर यूनिट परीक्षण लागू करने के लिए मैं सोफेबेस का नकल करना चाहता हूं।मॉकिंग कॉचबेस

शुद्ध मैं this project जो भी github में होस्ट किया गया है का सामना करना पड़ा ब्राउज़िंग। मैं इसका उपयोग करना चाहता हूं लेकिन कुछ बुनियादी उदाहरण याद कर रहा हूं।

शायद किसी ने इसे पहले कोशिश की है और मुझे जावा में कुछ बुनियादी उपयोग प्रदान कर सकते हैं?

धन्यवाद

+1

परियोजना, जबकि आधिकारिक तौर पर काउचआधारित द्वारा समर्थित साल पहले से ही इस बग के कारण के बारे में के लिए चोटी मृत जावा से भावी है: https://github.com/couchbase/CouchbaseMock/issues/11। यदि कोई बाल्टी नहीं खोल सकता है तो पूरी चीज का उद्देश्य अस्पष्ट है। –

उत्तर

3

निजी तौर पर इकाई परीक्षण मैं उन परियोजनाओं में से किसी का उपयोग नहीं करते उपयोग करते हुए काउचबेस परीक्षण जब, मैं सिर्फ Mockito बाहर उपहास करने के लिए काउचबेस कॉल का उपयोग करें।

आदर्श रूप से कॉचबेस के लिए आपके सभी कॉल डीएओ में अच्छी तरह से encapsulated हैं। मॉकिटो मुझे जेसन पेलोड इत्यादि के मामले में जो अपेक्षा करता है उसे वापस करने की इजाजत देता है लेकिन साथ ही मैं टाइमआउट और अन्य अपवादों का अनुकरण कर सकता हूं।

एक साधारण उदाहरण के रूप में जहां आप जांच रहे हैं कि क्या होता है यदि कॉचबेस एक ऐड ऑपरेशन के दौरान अपवाद फेंकता है तो आप निम्न कार्य करेंगे (मुझे एक रनटाइम अपवाद की उम्मीद है क्योंकि मैं पहले अपवाद को पकड़ता हूं और इसके कारण पुनः पुनर्प्राप्त करने के कारण पुनर्स्थापना करता हूं इस उदाहरण):

@Test(expected = RuntimeException.class) 
public void testSaveUserFailsOnAddDueToTimeout() { 
    when(couchbase.incr(anyString(), anyInt())).thenReturn(0L); 
    when(couchbase.add(anyString(), anyObject())).thenThrow(InterruptedException.class); 
    this.userDao.saveUser(SOURCE); 
} 

आप पूरे परीक्षण वर्ग यहाँ देख सकते हैं:

https://github.com/scalabilitysolved/couchbase-java/blob/master/src/test/java/com/scalabilitysolved/couchbase/dao/UserDaoTest.java

या पूरी परियोजना यहाँ (जो एक साधारण काउचआधारित/स्प्रिंग/एपीआई उदाहरण है)

https://github.com/scalabilitysolved/couchbase-java

+0

टैंक, यह एक अच्छा तरीका है लेकिन इसके साथ ही मुझे यह भी पता है कि कैसे सोफेबेस मॉक प्रोजेक्ट का उपयोग करना है। – forhas

+0

हे @forhas अगर यह आपके प्रश्न का उत्तर दिया गया है तो क्या आप इसे स्वीकार्य मानेंगे? धन्यवाद! – scalabilitysolved

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