Como traduzir testes do JUnit

Projetos de software bem projetados geralmente têm muitos testes de unidade para verificação. Para projetos Java, o JUnit (em inglês) é o framework de teste de unidade mais comum. O J2ObjC oferece suporte para a tradução de testes de unidade, para que eles possam ser executados como binários no OS X. Isso verifica se a tradução não mudou a semântica (comportamento) das classes traduzidas e 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 na distribuição j2objc, 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 a flag -l do compilador:

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

Como executar testes

Execute o executável do teste com os nomes de um ou mais testes e/ou conjuntos de testes, como os testes do JUnit são executados em Java. Os nomes podem ser o nome Java totalmente qualificado (com pacote) ou o nome traduzido equivalente. 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 testes JUnit3 ou JUnit4. No entanto, qualquer outro executor do JUnit pode ser usado.

Como criar testes

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