2010-02-27 13 views
13

मैं अपने Java Card अनुप्रयोगों को किसी प्रकार के नकली/अनुरूपित वातावरण में चलाने के लिए चाहता हूं ताकि वे जुनीट (या किसी अन्य इकाई परीक्षण ढांचे) परीक्षणों को चलाने में सक्षम हो सकें। क्या किसी को ऐसे उपकरण के बारे में पता है? मैं कुछ ओपन सोर्स प्रोजेक्ट पसंद करूंगा।जावा कार्ड यूनिट परीक्षण

+1

यदि किसी को पता नहीं है कि "जावा कार्ड" का क्या अर्थ है: http://java.sun.com/javacard/ – MatrixFrog

उत्तर

0

जावा कार्ड को नहीं जानते, हालांकि, पहली नज़र में, यह किसी भी अन्य जावाएमई प्लेटफार्मों से अलग नहीं है (अलग से मेरा मतलब है कि उन्हें जे 2 एसई की तुलना करना)। जैसे आप किसी भी सामान्य उदाहरण का उपयोग कर सकते हैं विकास को थोड़ा आसान बनाने के लिए JUnit परीक्षण वातावरण Eclipse/Netbeans के साथ परीक्षण वातावरण। कुछ प्लेटफार्म विशिष्ट सामानों को नकल करने के लिए आपको powermock की आवश्यकता हो सकती है। उम्मीद है की यह मदद करेगा।

नेटबीन्स के लिए एक युक्ति: आप परीक्षण के लिए अलग परियोजना पर विचार कर सकते हैं (जो आपके आवेदन प्रोजेक्ट पर निर्भर करता है)। उस स्थिति में आप अपने यूटी को नवीनतम जावा खिलौनों की शक्ति के साथ कोडित कर सकते हैं।

0

जावा कार्ड एप्लेट जावा कोड के साधारण टुकड़े हैं। तो, जुनीट ठीक है। उन्हें नियमित रूप से जावा कक्षाओं की जांच करने की तरह परीक्षण करें।

लेकिन समस्या यह है कि मैंने कभी जावकार्ड में कक्षाओं के जावा कार्यान्वयन को नहीं देखा। * और जावाकार्डक्स। * पैकेज। यदि आप उन्हें प्राप्त करेंगे - समस्या हल हो जाती है।

यदि आप परीक्षण करना चाहते हैं कि एप्लेट स्वयं कैसे काम करता है (एपीडीयू भेजें/प्राप्त करें), तो जावा कार्ड एसडीके में cref.exe है। यह एक जावकार्ड एमुलेटर है।

+2

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

10

इस उद्देश्य के लिए विशेष हमारी टीम ने जेकार्डसिम विकसित किया: ओपन-सोर्स जावाकार्ड सिम्युलेटर - http://code.google.com/p/jcardsim/

//1. create simulator 
Simulator simulator = new Simulator(); 
//2. install applet 
simulator.installApplet(appletAID, HelloWorldApplet.class); 
//3. select applet 
simulator.selectApplet(appletAID); 
//4. send apdu 
ResponseAPDU response = simulator.transmitCommand(new CommandAPDU(0x01, 0x01, 0x00, 0x00)); 
//5. check response 
assertEquals(0x9000, response.getSW()); 

यूनिट परीक्षण उदाहरण: http://code.google.com/p/jcardsim/source/browse/trunk/src/test/java/com/licel/jcardsim/base/SimulatorTest.java

यह पूरी तरह से असली एनएक्सपी चिप JavaCard का अनुकरण है। इसका उपयोग करने का प्रयास करें। कोई टिप्पणी और विचार स्वागत है! यदि आप परियोजना के लिंक साझा करते हैं तो हम आभारी होंगे!

+1

मुझे लगता है कि jCardSim एक बहुत ही रोचक प्रोजेक्ट है (और मैं योगदान करने की कोशिश करूंगा) लेकिन कहने के लिए कि यह पहले से ही "असली एनएक्सपी-चिप" का अनुकरण करने में सक्षम है, थोड़ा सा दूर ले रहा है। मेमोरी प्रबंधन, लेनदेन समर्थन, मालिकाना पुस्तकालय, एकाधिक प्रोटोकॉल समर्थन, विस्तारित लंबाई इत्यादि सभी अभी भी गायब हैं। –

1

ध्यान दें कि ऐसा करने का एक तरीका जावा एसई में जुनीट परीक्षण बनाना है, और जावा कार्ड में कक्षाओं के साथ संवाद करने के लिए एपीडीयू का उपयोग करना है। जाहिर है यह जावा कार्ड में सीधे कक्षाओं की जांच के समान नहीं है, लेकिन भिखारी चयनकर्ता नहीं हो सकते हैं। आम तौर पर आपको एक ऐप्पल बनाना होगा जो आपके लिए कुछ रूपांतरण करता है। यह विधि है जो jCardSim answer from Mikhail में उपयोग की जाती है - यह निश्चित रूप से वास्तविक कार्ड पर भी उपयोग की जा सकती है, लेकिन आप किसी भी कोड कवरेज और संभवतः - डिबगिंग विकल्प खो देंगे।

एक और तरीका (कि मुझे मालिकाना, कामकाजी समाधान मिल गया है) कार्ड पर यूनिट परीक्षण लागू करना है और उन्हें जावा एसई से जुनीट टेस्ट फ्रेमवर्क से कॉल करना है। यह बहुत काम है; काम करने के लिए मुझे अपना खुद का List कार्यान्वयन करना पड़ा। हालांकि यह इसी लायक था; यह मुझे जावा कार्ड के भीतर जावा कार्ड परिभाषित वस्तुओं और प्रकारों का उपयोग करने देता है। जहां तक ​​मुझे पता है इसके लिए कोई ओपन सोर्स विकल्प नहीं है।

यह जेकर्डसिम में जेयूनीट टेस्ट फ्रेमवर्क जोड़ने और सीधे कक्षाओं का परीक्षण करने का विकल्प हो सकता है, क्योंकि पूर्ण जेआरई एप्पल के संकलन के दौरान उपलब्ध है। ध्यान दें कि jCardSim अभी तक पूरी तरह से काम कर रहे जावा कार्ड नहीं है (उदा। एपीआई में निर्दिष्ट स्मृति की कोई रीसेट नहीं, कोई लेनदेन समर्थन इत्यादि नहीं है) इसलिए जावा कार्ड विशिष्ट कोड का परीक्षण करते समय इस बारे में जागरूक रहें।

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