Testes de host JAR (Java)

Os testes de host JAR devem ser implementados para fornecer cobertura completa do código do seu software. Siga as instruções para criar testes de unidade local . Escreva pequenos testes de unidade para validar uma função específica e nada mais.

Exemplo

O arquivo Blueprint a seguir fornece um exemplo simples de teste de host JAR Hello World para copiar e adaptar às suas necessidades: platform_testing/tests/example/jarhosttest/Android.bp

Isso corresponde ao código de teste real encontrado em: platform_testing/tests/example/jarhosttest/test/android/test/example/helloworld/HelloWorldTest.java

Um instantâneo do arquivo Blueprint está incluído aqui por conveniência:

java_test_host {
    name: "HelloWorldHostTest",

    test_suites: ["general-tests"],

    srcs: ["test/**/*.java"],

    static_libs: [
        "junit",
        "mockito",
    ],
}

A declaração java_test_host no início indica que este é um teste de host JAR. Veja um exemplo de seu uso em: frameworks/base/tools/powermodel/Android.bp

Configurações

Veja abaixo as explicações das seguintes configurações:

  • A configuração de name é necessária quando o tipo de módulo java_test_host é especificado (no início do bloco). Essa configuração dá um nome ao seu módulo e o JAR resultante tem o mesmo nome e um sufixo .jar . No exemplo abaixo, o JAR de teste resultante é denominado HelloWorldHostTest.jar . Além disso, essa configuração também define um nome de destino make para seu módulo, para que você possa usar make [options] <HelloWorldHostTest> para construir seu módulo de teste e todas as suas dependências.

    name: "HelloWorldHostTest",
    
  • A configuração test_suites torna o teste facilmente detectável pelo conjunto de testes da Federação de Comércio. Outros conjuntos de testes podem ser adicionados aqui, como CTS, para que o teste de teste do host JAR possa ser compartilhado.

    test_suites: ["general-tests"],
    
  • A configuração static_libs instrui o sistema de compilação a incorporar o conteúdo dos módulos nomeados no APK resultante do módulo atual. Isso significa que cada módulo nomeado deve produzir um arquivo .jar . O conteúdo do módulo é usado para resolver referências de caminho de classe durante o tempo de compilação e incorporado ao APK resultante.

    static_libs: [
        "junit",
    ],