JUnit-Tests übersetzen

Bei ausgefeilten Softwareprojekten werden in der Regel viele Einheitentests durchgeführt, um sie zu verifizieren. Bei Java-Projekten JUnit ist das gängigste Unittest-Framework. J2ObjC bietet Übersetzung von Einheitentests, sodass sie unter OS X als Binärprogramme ausgeführt werden können. Dadurch wird bestätigt, Die Übersetzung hat die Semantik (das Verhalten) der übersetzten Klassen nicht geändert und bestätigt, dass wird der übersetzte Code als Objective-C-Code ausgeführt.

Tests übersetzen

Führen Sie j2objc mit einem junit.jar im Klassenpfad aus. Eine Kopie dieser JAR-Datei ist in j2objc enthalten. Distribution mit dem Namen 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

Tests verknüpfen

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

${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 Testsuites aus, wie z. B. JUnit-Tests in Java ausgeführt wird. Die Namen können entweder der vollständig qualifizierte Java-Name (mit -Paket) oder der entsprechende übersetzten Namen. Die Testklasse com.company.MyUnitTest kann beispielsweise auch so angegeben werden: ComCompanyMyUnitTest.

./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 ausführen kann Tests durchführen. 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 in j2objc/jre_emul/tests.mk im Projektquellcode.