پروژههای نرمافزاری که به خوبی مهندسی شدهاند معمولاً آزمایشهای واحد زیادی برای تأیید آنها دارند. برای پروژه های جاوا، JUnit رایج ترین چارچوب تست واحد است. J2ObjC برای ترجمه تست های واحد پشتیبانی می کند، بنابراین می توان آنها را به صورت باینری در OS X اجرا کرد. این تأیید می کند که ترجمه معنایی (رفتار) کلاس های ترجمه شده را تغییر نداده است، و تأیید می کند که کد ترجمه شده به عنوان کد Objective-C اجرا می شود. .
تست های ترجمه
j2objc را با junit.jar
در classpath اجرا کنید. یک کپی از این فایل jar در توزیع 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
پیوند تست ها
پیوند با کتابخانه libjunit.a
در فهرست lib/
توزیع J2ObjC، با استفاده از پرچم -l
کامپایلر:
${J2OBJC_HOME}/j2objcc -ObjC -o mytest -ljunit MyUnitTest.m
در حال اجرا تست ها
آزمایشی را با نام یک یا چند تست و/یا مجموعه آزمایشی اجرا کنید، مانند تستهای JUnit که در جاوا اجرا میشوند. نامها میتوانند نام جاوا کاملاً واجد شرایط (با بسته)، یا نام ترجمهشده معادل باشند. به عنوان مثال، کلاس آزمایشی 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 ، در کد منبع پروژه است.