JUnit-Tests übersetzen

Bei gut entwickelten Softwareprojekten gibt es in der Regel viele Einheitentests, um sie zu verifizieren. Bei Java-Projekten ist JUnit das gängigste Framework für Einheitentests. J2ObjC unterstützt das Übersetzen von Einheitentests, sodass sie unter OS X als Binärprogramme ausgeführt werden können. So wird bestätigt, dass die Übersetzung die Semantik (Verhalten) der übersetzten Klassen nicht geändert hat und dass der übersetzte Code als Objective-C-Code ausgeführt wird.

Tests übersetzen

Führen Sie j2objc mit einem junit.jar im Klassenpfad aus. Eine Kopie dieser JAR-Datei mit dem Namen lib/j2objc_junit.jar ist in der j2objc-Distribution enthalten:

# 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

Verknüpfungstests

Stellen Sie mit dem Flag -l des Compilers eine Verknüpfung zur Bibliothek libjunit.a im Verzeichnis lib/ der J2ObjC-Distribution her:

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

Laufende Tests

Führen Sie die ausführbare Testdatei mit den Namen eines oder mehrerer Tests und/oder Testsuiten aus, z. B. werden JUnit-Tests in Java ausgeführt. Die Namen können entweder der voll qualifizierte Java-Name (mit Paket) oder der entsprechende übersetzte Name sein. Beispielsweise kann die Testklasse com.company.MyUnitTest auch als ComCompanyMyUnitTest angegeben werden.

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

org.junit.runner.JUnitCore ist einer der Test-Runner von JUnit, der entweder JUnit3- oder JUnit4-Tests ausführen kann. Es kann jedoch jeder andere JUnit-Runner verwendet werden.

Tests erstellen

Ein gutes Beispiel für die Verwendung von make zum Erstellen und Ausführen einer großen Anzahl von Einheitentests finden Sie im Projektquellcode unter j2objc/jre_emul/tests.mk.