### O que caracteriza um teste unitário?
> Dica: revise a seção O que é teste unitário e o slide O que é JUnit
- [ ] Executar o sistema completo com usuários reais
- [x] Avaliar pequenos componentes, como métodos ou classes, de forma isolada
- [ ] Medir apenas o desempenho da aplicação em produção
- [ ] Substituir a revisão de código por inspeções manuais
### Por que a classe Book do exemplo hexagonal é um bom alvo de teste unitário?
> Dica: revise a seção O domínio Book como unidade sob teste
- [ ] Porque ela depende diretamente do MySQL
- [ ] Porque só funciona dentro do Quarkus
- [x] Porque é domínio em Java puro e valida regras em Book.of sem infraestrutura
- [ ] Porque substitui o JUnit
### No Exemplo 1, o que a anotação @Test indica?
> Dica: revise a seção Primeiro teste e o slide Exemplo de Teste com JUnit 5
- [ ] Que o método configura o ambiente antes de todos os testes
- [x] Que o método é um caso de teste a ser executado pelo JUnit
- [ ] Que o método deve ser ignorado na execução
- [ ] Que o método define a ordem de execução dos testes
### Qual é a diferença entre @BeforeAll e @BeforeEach?
> Dica: revise a seção Anotações e o slide Principais Anotações do JUnit 5
- [ ] @BeforeAll roda antes de cada teste; @BeforeEach roda uma vez só
- [ ] Ambas executam depois de cada método de teste
- [x] @BeforeAll roda uma vez antes de todos os testes; @BeforeEach roda antes de cada teste
- [ ] @BeforeAll só funciona com @Order; @BeforeEach só com @Tag
### Para que serve a anotação @DisplayName?
> Dica: revise a seção Anotações, após o Exemplo 2
- [ ] Definir a ordem de execução dos testes
- [ ] Agrupar testes por categoria no Surefire
- [x] Atribuir um nome mais significativo ao teste nos relatórios
- [ ] Verificar se uma exceção foi lançada
### Qual assertiva é adequada para verificar que Book.of lança InvalidBookException com título em branco?
> Dica: revise a seção Assertivas e o slide assertThrows com Book
- [ ] assertEquals
- [ ] assertTrue
- [ ] assertNull
- [x] assertThrows
### Em assertThrows, por que o código sob teste costuma aparecer em uma expressão lambda?
> Dica: revise o Exemplo 4 sobre assertThrows
- [ ] Porque lambdas são obrigatórias em todo teste do JUnit 5
- [x] Para que a assertiva possa capturar e verificar a exceção lançada naquele bloco
- [ ] Para tornar o teste mais rápido
- [ ] Porque o Surefire só reconhece lambdas
### Qual boa prática os slides e o texto reforçam sobre testes unitários?
> Dica: revise a seção Boas práticas e o slide Boas Práticas
- [ ] Um teste pode depender do estado deixado pelo teste anterior
- [ ] Todos os testes devem ficar em uma única classe
- [x] Cada teste deve ser independente e usar nomes descritivos
- [ ] Nomes de métodos de teste não importam, desde que haja @Test
### No Maven com Surefire, qual convenção de nome ajuda a incluir uma classe de teste na execução de mvn test?
> Dica: revise a seção JUnit com Maven
- [ ] Prefixo Main no nome da classe
- [x] Sufixo Test no nome da classe, por exemplo BookTest
- [ ] Extensão .junit no arquivo
- [ ] Pacote obrigatório chamado surefire
### Nos exercícios práticos sobre Book, o que o estudante deve fazer?
> Dica: revise a seção Exercícios práticos
- [ ] Escrever apenas testes de integração com RestAssured
- [x] Criar BookTest e cobrir criação válida e rejeições com assertThrows
- [ ] Alterar o código de produção de Book antes de testar
- [ ] Usar Mockito obrigatoriamente em todos os cenários