Aula 05 - Testes, TDD, DDD, Clean Code Flashcards
O que é o JUnit?
Definição prática: Conjunto de classes em Java que você estende para criar um ambiente de testes automatizados.
1. Cada teste é implementado por meio de um objeto, então um executor testa todos.
2. Com ele, pode ser verificado se cada método de uma classe funciona
da forma esperada.
Definição conceitual: framework Open Source de teste de unidade para a linguagem de programação Java, criado por Erich Gamma e Kent Beck, com suporte à criação de testes automatizados na linguagem de programação Java.
O que é um workbench de testes?
Conjunto integrado de ferramentas para apoiar o processo de teste.
Quais tipos de ferramentas um workbench de testes pode incluir? Resuma cada um.
-Frameworks de Testes: apoiam a execução
-Gerenciador de Teste: gerencia a execução de testes
-Gerenciador de Dados de Teste: gera dados de teste para o programa ser testado
-Comparador de Arquivos: compara os resultados dos testes de programa com os resultados de testes anteriores e relata as diferenças entre elas
-Oráculo: gera previsões de resultados de teste esperados
-Gerador de Relatórios: fornece recursos de definição e de geração de relatórios.
-Analisador Dinâmico: adiciona código ao programa para contar o número de vezes em que cada declaração foi executada
-Simulador: simulam uma máquina real na qual o programa será executado
Julgue o item a seguir:
O JUnit é um método de testes de software do padrão xUnit voltado para sistemas desenvolvidos em linguagem Java
Correto. O JUnit é um framework de código aberto para automação de testes unitários desenvolvido para a linguagem Java. Este framework tem por base o xUnit, que é o nome dado a uma família de frameworks de testes para diversas plataformas
Julgue o item a seguir:
Os métodos de teste devem ser anotados pela anotação @Test
Correto.
Quais são as annotations do JUnit 5?
@Test
@ParameterizedTest
@RepeatedTest
@TestFactory
@TestTemplate
@TestClassOrder
@Nestedteste
@TestMethodOrder
@FixMethodOrder
@TestInstance
@DisplayName
@DisplayNameGeneration
@BeforeEach
@AfterEach
@BeforeAll
@AfterAll
@AfterAllstatic
@Nested
@Tag
@Disabled
@Timeout
@ExtendWith
@RegisterExtension
@TempDir
@EnabledIf
@DisabledIf
@EnabledOnOs/@DisabledOnOs
@EnabledIfSystemProperty/@DisabledIfSystemProperty
@DisabledIfEnvironmentVariable/@EnabledIfEnvironmentVariable
As definições de cada uma estão na página 9 do PDF, em formato tabela. (cai em prova)
Quais annotations se tornaram obsoletas no JUnit 4 e quais seus equivalentes no JUnit 5?
ANTIGO -> NOVO
@Before = @BeforeEach
@After = @AfterEach
@BeforeClass = @BeforeAll
@AfterClass = @AfterAll
@Ignore = @Disabled
@Category = @Tag
@RunWith = @ExtendWith
@Rule = @ExtendWith
@ClassRule = @RegisterExtension
Julgue o item a seguir:
Ao contrário das versões anteriores do JUnit, o JUnit 5 é composto por vários módulos diferentes de três subprojetos diferentes: Plataforma JUnit + JUnit Jupiter + JUnit Vintage
Correto.
Julgue o item a seguir:
A Plataforma JUnit serve como base para lançar estruturas de teste na JVM. Ele também define a TestEngineAPI para desenvolver uma estrutura de teste que é executada na plataforma. Além disso, a plataforma fornece um Console Launcher para iniciar a plataforma a partir da linha de comando e o JUnit Platform Suite Engine para executar um conjunto de testes personalizado usando um ou mais
mecanismos de teste na plataforma.
Correto. (E esses conceitos caem em prova)
Julgue o item a seguir:
JUnit Jupiter é a combinação do modelo de programação e do modelo de extensão para escrever testes e extensões no JUnit 5. O subprojeto Jupiter fornece um TestEngine para executar testes baseados em Jupiter na plataforma.
Correto.
Julgue o item a seguir:
JUnit Vintage fornece um TestEngine para executar testes baseados em JUnit 3 e JUnit 4 na plataforma. Requer que o JUnit 4.12 ou posterior esteja presente no caminho da classe ou no caminho do módulo.
Correto.
Julgue o item a seguir:
Toda classe de teste é uma subclasse da classe TestCase que é declarada no pacote do JUnit.framework localizado no arquivo JUnit.jar
Correto
Qual a composição das classes de testes do JUnit?
(verificar)
Dentre as limitações do JUnit, está a dificuldade de aplicar um critério de teste e a necessidade de compilar as classes para funcionar.
Errado. O JUnit tem diversas limitações, herdadas das ferramentas de teste de unidade em geral, como aplicar um critério de teste, dificuldade de executar teste de GUI com eficiência, de escrever alguns testes para EJB, criar estatísticas de teste e escalabilidade de criação de casos de teste. O JUnit, porém, tem a capacidade de executar testes tanto em arquivos .java (não compilados) quanto em arquivos .class (classes compiladas Java, em bytecode).
O que é o Selenium?
Selenium é um projeto abrangente de várias ferramentas e bibliotecas para automação de navegadores da web.
Julgue o item a seguir:
O WebDriver não exige que sua API seja compilada com o código do aplicativo, portanto, você está testando o mesmo aplicativo que envia aos ambientes de produção.
Correto. O WebDriver usa APIs de automação de navegador disponibilizadas por fornecedores de navegador para controlar e executar testes. É como se um usuário real o estivesse operando.