JUnit 테스트 변환

잘 엔지니어링된 소프트웨어 프로젝트에는 일반적으로 검증을 위한 단위 테스트가 많이 있습니다. Java 프로젝트의 경우 JUnit은 가장 일반적인 단위 테스트 프레임워크입니다. J2ObjC 제공 OS X에서 바이너리로 실행할 수 있도록 단위 테스트 변환을 지원합니다. 이것은 번역이 번역된 클래스의 의미 (동작)를 변경하지 않고 변환된 코드는 Objective-C 코드로 실행됩니다.

번역 테스트

클래스 경로에서 junit.jar로 j2objc를 실행합니다. 이 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

연결 테스트

다음을 사용하여 J2ObjC 배포의 lib/ 디렉터리에 있는 libjunit.a 라이브러리와 연결합니다. 컴파일러의 -l 플래그:

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

테스트 실행

JUnit 테스트와 같이 하나 이상의 테스트 또는 테스트 모음의 이름으로 테스트 실행 파일을 실행합니다. 실행할 수 있습니다 이름은 정규화된 Java 이름 (패키지 포함)이거나 번역된 이름입니다. 예를 들어 com.company.MyUnitTest 테스트 클래스는 다음과 같이 지정할 수도 있습니다. ComCompanyMyUnitTest입니다.

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

org.junit.runner.JUnitCore는 JUnit3 또는 JUnit4를 실행할 수 있는 JUnit 테스트 실행기 중 하나입니다. 있습니다 하지만 다른 JUnit 실행기를 사용할 수 있습니다.

빌드 테스트

make를 사용하여 대규모 단위 테스트 세트를 빌드하고 실행하는 방법에 관한 좋은 예는 j2objc/jre_emul/tests.mk의 소스 코드를 가져옵니다.