Перевод тестов JUnit

Хорошо спроектированные программные проекты обычно включают множество модульных тестов для их проверки. Для проектов Java JUnit является наиболее распространенной средой модульного тестирования. J2ObjC обеспечивает поддержку перевода модульных тестов, поэтому их можно выполнять как двоичные файлы в OS X. Это проверяет, что перевод не изменил семантику (поведение) переведенных классов, и проверяет, что переведенный код работает как код Objective-C. .

Перевод тестов

Запустите j2objc с файлом junit.jar в пути к классам. Копия этого 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

Связывание тестов

Свяжите библиотеку libjunit.a в каталоге lib/ дистрибутива J2ObjC, используя флаг компилятора -l :

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

Запуск тестов

Запустите исполняемый файл теста с именами одного или нескольких тестов и/или наборов тестов, например тесты JUnit запускаются на Java. Имена могут быть либо полным именем 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 в исходном коде проекта.