# Qual é o padrão usado pelo Rest Assured para organizar um teste em três etapas?
- [ ] MVC (Model, View, Controller).
- [x] BDD, com given(), when() e then().
- [ ] CRUD (Create, Read, Update, Delete).
- [ ] AAA (Arrange, Act, Assert) exclusivo do JUnit.
> Dica: o padrão BDD organiza o teste como uma frase legível em três etapas.
# Na etapa given(), o que normalmente é preparado?
- [x] O contexto da requisição: cabeçalhos, parâmetros e corpo.
- [ ] A validação do resultado retornado pelo servidor.
- [ ] O disparo da chamada HTTP.
- [ ] Apenas o status code esperado.
# Qual método dispara a chamada HTTP dentro de um teste com Rest Assured?
- [ ] then().
- [ ] given().
- [x] when(), seguido do verbo HTTP, como get() ou post().
- [ ] assert().
# Qual matcher deve ser usado para verificar se um campo contém um trecho de texto, sem precisar ser idêntico?
- [ ] equalTo().
- [x] containsString().
- [ ] notNullValue().
- [ ] is().
> Dica: equalTo exige igualdade exata; containsString é mais flexível.
# Como validar, em uma única linha, que um campo numérico de um JSON é maior que um valor?
- [ ] body("campo", equalTo(10)).
- [x] body("campo", greaterThan(10)).
- [ ] body("campo", startsWith(10)).
- [ ] body("campo", hasItems(10)).
# Qual código de status HTTP é esperado após a criação bem sucedida de um recurso com POST?
- [ ] 200.
- [x] 201.
- [ ] 204.
- [ ] 404.
# Qual código de status HTTP é esperado após a remoção bem sucedida de um recurso com DELETE, sem corpo de resposta?
- [ ] 200.
- [ ] 201.
- [x] 204.
- [ ] 401.
# Para enviar um token JWT em uma requisição com Rest Assured, qual chamada é usada?
- [ ] .queryParam("token", jwt).
- [x] .header("Authorization", "Bearer " + jwt).
- [ ] .cookie("token", jwt).
- [ ] .auth().basic(jwt, "").
# O que a chamada .auth().basic(usuario, senha) faz em uma requisição?
- [x] Envia usuário e senha codificados em Base64 no cabeçalho da requisição.
- [ ] Envia usuário e senha como parâmetros de consulta na URL.
- [ ] Gera automaticamente um token JWT para a requisição.
- [ ] Criptografa o corpo da requisição com AES.
> Dica: autenticação básica não é segura sem HTTPS, pois os dados viajam praticamente em texto plano.
# Como validar que todos os itens de uma lista JSON possuem um campo igual a true?
- [ ] body("campo", equalTo(true)).
- [x] body("campo", everyItem(equalTo(true))).
- [ ] body("campo", hasItems(true)).
- [ ] body("campo", is(true)).
# Qual chamada permite extrair, após a execução da requisição, um valor do corpo da resposta, como um token ou um id?
- [ ] .then().statusCode(200).
- [x] .extract().path("campo").
- [ ] .given().body("campo").
- [ ] .when().get("campo").