JUnit टेस्ट का अनुवाद करना

अच्छी तरह से बने सॉफ़्टवेयर प्रोजेक्ट में आम तौर पर, उनकी पुष्टि के लिए कई यूनिट टेस्ट होते हैं. Java प्रोजेक्ट के लिए, JUnit सबसे ज़्यादा इस्तेमाल किया जाने वाला यूनिट टेस्ट फ़्रेमवर्क है. J2ObjC, यूनिट टेस्ट के अनुवाद की सुविधा देता है, ताकि उन्हें ओएस X पर बाइनरी के तौर पर एक्ज़ीक्यूट किया जा सके. इससे पुष्टि की जाती है कि अनुवाद ने अनुवाद की गई क्लास के सिमैंटिक (व्यवहार) में कोई बदलाव नहीं किया. साथ ही, इससे इस बात की भी पुष्टि होती है कि अनुवाद किया गया कोड, ऑब्जेक्टिव-सी कोड के तौर पर चलता है.

टेस्ट का अनुवाद करना

क्लासपाथ में junit.jar के साथ j2objc चलाएं. इस जार फ़ाइल की एक कॉपी j2objc डिस्ट्रिब्यूशन में शामिल है, जिसका नाम lib/j2objc_junit.jar है:

# Example: J2ObjC bundle unzipped into a ~/tools directory
export J2OBJC_HOME=~/tools/j2objc
${J2OBJC_HOME}/j2objc -classpath ${J2OBJC_HOME}/lib/j2objc_junit.jar MyUnitTest.java

लिंक करने से जुड़े टेस्ट

कंपाइलर के -l फ़्लैग का इस्तेमाल करके, J2ObjC डिस्ट्रिब्यूशन की lib/ डायरेक्ट्री में libjunit.a लाइब्रेरी से लिंक करें:

${J2OBJC_HOME}/j2objcc -ObjC -o mytest -ljunit MyUnitTest.m

चल रहे परीक्षण

एक या उससे ज़्यादा टेस्ट और/या टेस्ट सुइट के नाम के साथ टेस्ट एक्ज़ीक्यूटेबल चलाएं. उदाहरण के लिए, JUnit टेस्ट JavaScript में किए जाते हैं. ये नाम पूरी तरह क्वालिफ़ाइड Java नाम (पैकेज के साथ) हो सकते हैं या उसके बराबर का अनुवाद किया गया नाम हो सकते हैं. उदाहरण के लिए, com.company.MyUnitTest टेस्ट क्लास को ComCompanyMyUnitTest के तौर पर भी दिखाया जा सकता है.

./mytest org.junit.runner.JUnitCore com.company.MyUnitTest  # or com.company.Test2

org.junit.runner.JUnitCore, JUnit के टेस्ट रनर में से एक है. यह JUnit3 या JUnit4 में से किसी एक को टेस्ट कर सकता है. हालांकि, किसी भी दूसरे JUnit रनर का इस्तेमाल किया जा सकता है.

टेस्ट बनाना

make का इस्तेमाल करके, यूनिट टेस्ट का एक बड़ा सेट बनाने और चलाने का अच्छा उदाहरण, प्रोजेक्ट सोर्स कोड में मौजूद j2objc/jre_emul/tests.mk में दिया गया है.