SóProvas


ID
3356854
Banca
CESPE / CEBRASPE
Órgão
TJ-PA
Ano
2020
Provas
Disciplina
Programação
Assuntos

Assinale a opção que apresenta a anotação que pode ser utilizada no JUnit para condicionar a execução de um teste a partir da avaliação de um script escrito em JavaScript.

Alternativas
Comentários
  • Não achei essa anotação na documentação do JUnit, mas pesquisando no Google encontrei coisas associadas ao Spring, seria uma anotação do Spring então? É um questão de JUnit ou de Spring? https://junit.org/junit5/docs/current/user-guide /#overview

  • puxxxaaadddisssima a questão

    ja cobrando junit5

    minha dica.. da uma zapeada pelas anotações do junit5

    já estão sendo cobradas com uma certa frequência

  • @EnabledOnOs:

    Indica qual o sistema operacional que deve ser testado.

    Teste executado somente no Windows e no MacOS:

    @Test

    @EnabledOnOs({OS.WINDOWS, OS.MAC})

    public void shouldRunBothWindowsAndMac() {

     //...

    }

    @DisabledOnOs:

    Desativa os testes de acordo com o argumento de tipo do SO;

    @Test

    @DisabledOnOs(OS.LINUX)

    public void shouldNotRunAtLinux() {

     //...

    }

    fonte: https://www.codeflow.site/pt/article/junit-5-conditional-test-execution

  • A questão versa sobre o framework opensource de testes para a linguagem de programação Java : Junit.

    As annotations (anotações) em JAVA são uma forma de metadados e fornecem dados sobre um programa que não faz parte do próprio programa. As anotações não têm efeito direto na operação do código que anotam. O caractere de @ indica ao compilador que o que se segue é uma anotação [1]

    Dito isso, para responder essa questão, vamos utilizar como referência a documentação oficial da versão 5.3 do JUnit [2]

    Vamos para análise das alternativas.

    A) INCORRETA. Essa anotação é utilizada para sinalizar que a classe de teste anotado ou método de teste está habilitado apenas em um ou mais sistemas operacionais especificados [2].

    B) INCORRETA. Essa anotação é utilizada para sinalizar que a classe de teste anotado ou método de teste está ativado apenas em uma ou mais versões especificadas do JRE (Java Runtime Environment) [2]
    C) INCORRETA. Essa anotação é utilizada para sinalizar que a classe de teste anotado ou método de teste será desativado se o valor da propriedade do sistema especificada corresponder à expressão regular especificada [2].

    D) INCORRETA. Essa anotação é utilizada para sinalizar que a classe de teste anotado ou método de teste só é ativado se o valor da variável de ambiente responder à expressão regular encontrado [2].

     E) CORRETA.  Conforme documentação do JUnit, essa anotação é utilizada  para condicionar a ativação da classe de teste anotado ou método de teste pela avaliação de um script [2].Por default (padrão), o JUnit fornece suporte para avaliação de scripts JavaScript [2].


    Gabarito do professor: Letra E.


    REFERÊNCIAS: [1] Oracle. JAVA SE - annotations. Disponível em: site do tutorial JAVA SE da Oracle. Acesso em: 14/8/2020; [2] JUnit. Documentation JUnit 5.3.0. Disponível em: site oficial da JUnit. Acesso em: 14/8/2020
  • Eu não escrevo Java, mas pelo nome dos métodos acredito que é possível responder a questão. Poderia fazer "Copia e Cola" de cada método aqui, mas vou tentar resumir o que eu entendi quando vi a questão pela primeira vez.

    De fato, todas as respostas tratam de condicionais para avaliação em teste de classe ou de método. Entretanto, cada nomenclatura entrega sua particularidade:

    (a) @EnabledOnOS -> Teste vai responder de acordo com o Sistema Operacional (SO)

    (b) @EnabledOnJre -> Teste vai responder de acordo com versão do Java Runtime Environment (JRE)

    (c) @DisabledIfSystemProperty -> Teste vai responder de acordo com a propriedade do sistema

    (d) @DisabledIfEnvironmentVariable -> Teste vai responder de acordo com uma variável de sistema

    Como a questão pede um método para avaliação de um script em Javascript, entendo que o melhor método a ser utilizado seria a @EnabledIf (letra e), por depender somente de uma avaliação condicional "Se".

    Obs.: Enabled irá habilitar, e Disabled desabilitar: Tudo de acordo com o teste condicional envolvido.

  • Depreciado

    "Script-based condition APIs and their implementations were deprecated in JUnit 5.5 and removed from JUnit 5.6. In order to achieve the same result, it's highly recommended to use a combination of built-in conditions or create a custom implementation of ExecutionCondition"