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