转换 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

链接测试

使用编译器的 -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 构建和运行大量单元测试。