2014-04-24 11 views
6

मेरे पास कुछ सी ++ कोड के लिए एक एंड्रॉइड जेएनआई रैपर है। सी ++ कोड में यह यूनिट परीक्षणों का अपना सेट है।
मैं जेएनआई रैपर वर्ग के लिए जावा यूनिट-टेस्ट लिखना चाहता हूं।यूनिट परीक्षण जेएनआई कॉल

क्या डेस्कटॉप कंसोल से एंड्रॉइड जेएनआई .so रैपर एपीआई इकाई-परीक्षण करने का कोई तरीका है। विंडोज़ पर? हो सकता है कि डेस्कटॉप जावा फ्रेमवर्क का उपयोग करें लेकिन सभी एंड्रॉइड एसडीके कॉल के साथ?

उत्तर

1

चूंकि मूल में कॉल करने वाली कक्षा सिर्फ एक रैपर वर्ग है, तो आप केवल जेएनआई परत का परीक्षण कर सकते हैं। यदि आप यही चाहते हैं, तो यूनिट को सीधे अपने जेएनआई कार्यों का परीक्षण करना मुश्किल होगा। हालांकि, आप अभी भी अपने जेएनआई फ़ंक्शन का "मूल" ले सकते हैं जो सभी काम करता है और इसे एक अलग .c फ़ाइल में डाल देता है। तो मूल रूप से, आप जेएनआई कक्षा में अपनी नई कक्षा शामिल करेंगे और उस वर्ग को सभी खराब कर देंगे। अब, आपके पास एक .c क्लास होगा जो विधियों के सेट के साथ है जिसे आसानी से यूनिट परीक्षण किया जा सकता है।

आशा है कि मदद करता है!

+1

हां, यह एक अच्छी विधि हो सकती है और यह बहुत ही कुशल है, लेकिन यह जानना महत्वपूर्ण है कि विभिन्न प्लेटफ़ॉर्म और सी लाइब्रेरी अलग-अलग तरीकों से व्यवहार करते हैं - उदाहरण के लिए 32-बिट एंड्रॉइड सिस्टम पर सूक्ष्म त्रुटियों का अनुभव अलग-अलग हो सकता है जब एक (आमतौर पर) 64-बिट विकास मेजबान के लिए बनाया गया - यह आवश्यक रूप से कार्यान्वयन-परिभाषित व्यवहार के बारे में जोखिम भरा धारणाओं को पकड़ नहीं लेगा। –

+0

जैसा कि मैंने सवाल में कहा था कि सी ++ कोड में पहले से ही इसका यूनिट-टेस्ट है, जैसा सी ++ एपीआई के लिए सी रैपर करता है। जो मैं यूटी करना चाहता हूं वह जेएनआई कोड है, जिसमें अक्सर प्लेटफॉर्म विशिष्ट डेटा रूपांतरण होते हैं जिन्हें वास्तव में मूल सी को पोर्ट या अलग नहीं किया जा सकता है। –

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