设计良好的软件项目通常有许多单元测试来验证它们。对于 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
链接测试
使用编译器的 -l
标记,链接到 J2ObjC 发行版的 lib/
目录中的 libjunit.a
库:
${J2OBJC_HOME}/j2objcc -ObjC -o mytest -ljunit MyUnitTest.m
运行测试
使用一个或多个测试和/或测试套件的名称运行测试可执行文件,例如使用 Java 运行 JUnit 测试。名称可以是完全限定的 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 运行程序。
构建测试
项目源代码中的 j2objc/jre_emul/tests.mk 是一个很好的例子,展示了如何使用 make
构建和运行大量单元测试。