-
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"