Pular para conteúdo

Quiz 12 - Introdução

1. **Qual macro é usada para verificar se dois valores são iguais em um teste?**
`assert!`
`assert_eq!`
`check_equal!`
`test_match!` > **Explicação**: `assert_eq!(a, b)` falha e imprime os valores se eles forem diferentes.
2. **Onde geralmente ficam localizados os testes unitários no Rust?**
Em uma pasta separada chamada `tests/`
No mesmo arquivo do código fonte, dentro de um módulo `#[cfg(test)]`
No arquivo Cargo.toml
Em um PDF de especificações > **Explicação**: Testes unitários vivem ao lado do código que testam para facilitar o acesso a itens privados.
3. **Para que serve o atributo `#[test]`?**
Para documentar a função
Para marcar uma função como sendo um caso de teste que o `cargo test` deve executar
Para aumentar a performance da função
Para indicar que a função é experimental > **Explicação**: Sem esse atributo, a função é tratada como uma função comum e não é rodada pelo test runner.
4. **Qual comando executa todos os testes do projeto?**
`cargo build`
`cargo check`
`cargo test`
`rustc --test` > **Explicação**: O comando `cargo test` compila e executa todos os testes unitários, de integração e de documentação.
5. **O que são Testes de Integração no Rust?**
Testes que verificam se o código compila
Testes que usam a sua biblioteca como um usuário externo, localizados na pasta `tests/`
Testes de velocidade do servidor
Comentários no código > **Explicação**: Testes de integração ficam fora de `src/` e testam a API pública da biblioteca.
6. **Como criamos comentários que serão usados para gerar documentação HTML?**
`//`
`/* ... */`
`///` (três barras)
`#` > **Explicação**: As três barras indicam comentários de documentação para o `rustdoc`.
7. **Qual o recurso "mágico" dos blocos de código na documentação do Rust?**
Eles mudam de cor sozinhos
Eles são testados automaticamente pelo `cargo test` (Doc-tests)
Eles são convertidos em JavaScript
Eles não servem para nada, são apenas enfeite > **Explicação**: Os Doc-tests garantem que os exemplos fornecidos na documentação realmente funcionam.
8. **O comando `cargo doc --open` faz o quê?**
Abre o seu código no editor
Gera a documentação HTML do seu projeto e de todas as dependências e a abre no navegador
Formata o seu código automaticamente
Abre o site oficial do Rust > **Explicação**: É a melhor forma de visualizar como o seu projeto está documentado.
9. **Para que serve o atributo `#[cfg(test)]` acima de um módulo?**
Para dizer que o código é difícil
Para garantir que o código de teste não seja incluído no binário final de produção
Para permitir o uso de variáveis globais
Para desativar o compilador > **Explicação**: Isso economiza espaço e tempo de compilação no binário final.
10. **Se um teste falha, o `cargo test` retorna um código de saída:**
De sucesso (0)
De erro (não-zero)
Aleatório
Uma mensagem de voz > **Explicação**: O código de erro permite que ferramentas de CI/CD (como GitHub Actions) interrompam o deploy se os testes falharem.