Como traduzir testes do JUnit

Projetos de software bem projetados geralmente têm muitos testes de unidade para verificá-los. Para projetos Java, O JUnit (em inglês) é o framework de teste de unidade mais comum. O J2ObjC fornece suporte à tradução de testes de unidade para que possam ser executados como binários no OS X. Isso confirma se a tradução não mudou a semântica (comportamento) das classes traduzidas e verifica se o código traduzido é executado como código Objective-C.

Como traduzir testes

Execute j2objc com um junit.jar no caminho de classe. Uma cópia desse arquivo jar está incluída no arquivo j2objc distribuição, chamada 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

Testes de vinculação

Vincule a biblioteca libjunit.a no diretório lib/ da distribuição J2ObjC usando o flag -l do compilador:

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

Testes em execução

Execute o executável com os nomes de um ou mais testes e/ou pacotes de testes, como os testes JUnit executados em Java. Os nomes podem ser o nome Java totalmente qualificado (com pacote) ou o nome nome traduzido. Por exemplo, a classe de teste com.company.MyUnitTest também pode ser especificada como ComCompanyMyUnitTest.

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

org.junit.runner.JUnitCore é um dos executores de testes do JUnit, que podem executar JUnit3 ou JUnit4. provas. No entanto, qualquer outro executor JUnit pode ser usado.

Como criar testes

Um bom exemplo de como usar make para criar e executar um grande conjunto de testes de unidade está em j2objc/jre_emul/tests.mk, no o código-fonte do projeto.