翻譯 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 執行器。

建構測試

如要瞭解如何使用 make 建構及執行大量單元測試,請參閱專案原始碼的 j2objc/jre_emul/tests.mk