2012-11-18 11 views
10

का उपयोग कर किसी एप्लिकेशन का परीक्षण करने के लिए यूनिट कैसे करें Google Drive API (Java client) का उपयोग करके किसी एप्लिकेशन का परीक्षण करने का सबसे अच्छा तरीका क्या है?Google ड्राइव एपीआई (जावा क्लाइंट)

यह भरोसा भारी Drive वर्ग पर लिखित आवेदन की तरह लगता है, लेकिन या तो ...

  • से कम एक बहुत व्यापक नकली बनाने (जो, अपने आप में, संभावना का परीक्षण किया जा करने की आवश्यकता होगी), या
  • एकीकरण परीक्षण वास्तविक डिस्क सेवा

पर निर्भर लेखन ... कैसे इस तरह के एक आवेदन का परीक्षण किया जा सकता है? Mockito तरह

का उपयोग नकली चौखटे, डिस्क API (जावा ग्राहक) के साथ एक सा कठिन है, क्योंकि ड्राइव जावा ग्राहक का उपयोग (जैसे दस्तावेज़ से) इतने सारे श्रृंखलित कॉल करने पर भरोसा करते हैं:

Drive service = getDriveService(req, resp); 
service.files().get(fileId).execute(); 
+0

मैं कहूंगा कि आप इस मामले में एकीकरण परीक्षण करने के बेहतर हैं क्योंकि आप लाइब्रेरी को आसानी से नकल नहीं कर सकते हैं। – Hiro2k

उत्तर

3

यह नहीं है कि थकाऊ Mockito में वास्तव में, होना चाहिए गहरी ठूंठ की मदद से:

Drive mockDrive = mock(Drive.class, RETURNS_DEEP_STUBS); 

.... 
// stubbing 
when(service.files().get(anyString()).execute()).thenReturn(something); 

// verify 
verify(service.files().get("Some Field ID").execute(); 

जानें documentation of Mockito अधिक से

यह ठीक है अगर आप वास्तविक ड्राइव सेवा के खिलाफ परीक्षण करने के लिए एकीकरण परीक्षण लिखते हैं, लेकिन यह केवल इकाई परीक्षण को प्रतिस्थापित नहीं कर सकता है।

+1

+1 अगर मैं रात में बहुत खुशी से सोना चाहता था, तो मेरे पास इकाई और एकीकरण परीक्षण होगा। –

+0

@AliAfshar अगर मैं रात में बहुत खुशी से सोना चाहता हूं, तो मुझे एक गर्म पत्नी मिल जाएगी (एलओएल) –

+0

अभी भी इसे काम पर नहीं मिल सकता है, क्योंकि मुझे क्लासकास्ट एक्सेप्शन (org.mockito.internal.creation.jmock.ClassImposterizer 'मिलता है $ ClassWithSuperclassToWorkAroundCglibBug $$ EnhancerByMockitoWithCGLIB $$ 4603175d java.lang.Void पर नहीं डाला जा सकता है) '। हालांकि, मुझे लगता है कि आपका जवाब वास्तव में सही है, और जो त्रुटि मैं देख रहा हूं वह मॉकिटो में एक बग है। धन्यवाद! –

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