Problemas com Padrões de Nomenclatura:
Erros Tipográficos:
- Falhas silenciosas por nomes incorretos (ex.: tsetSafetyOverride em vez de testSafetyOverride).
Uso Indevido:
- Não há como garantir que nomes sejam usados apenas nos elementos certos (ex.: nomear uma classe como TestSafetyMechanisms).
Associação de Parâmetros:
Dificuldade em associar parâmetros aos elementos do programa (ex.: codificar tipos de exceção nos nomes dos métodos de teste).
Solução com Anotações:
Exemplo de Anotação: Criação de uma anotação Test para métodos de teste.
Meta-anotações:
- @Retention(RetentionPolicy.RUNTIME): Manter as anotações em tempo de execução.
- @Target(ElementType.METHOD): Anotação permitida apenas em métodos.
Uso Prático:
- A anotação Test marca métodos estáticos sem parâmetros para testes automáticos que falham se lançarem exceções.
- Exemplo: Classe Sample com métodos anotados como testes (alguns válidos, alguns inválidos).
Ferramenta de Teste Simples:
- Teste Runner: Executa métodos anotados com Test reflexivamente.
- Usa Method.invoke e isAnnotationPresent para detectar e executar métodos anotados.
- Captura e relata exceções lançadas pelos métodos de teste.
Anotações com Parâmetros:
- Teste com Exceções: Criação de uma anotação ExceptionTest para testes que passam se lançarem uma exceção específica.
- Tipo de Parâmetro: Class<? extends Throwable> para especificar o tipo de exceção esperada.
Modificação do Teste Runner:
- Adiciona suporte para ExceptionTest.
- Verifica se a exceção lançada é do tipo correto.
Anotações Repetíveis:
- Uso de Arrays:
- Mudança do parâmetro de ExceptionTest para um array de Class.
Anotações @Repeatable:
Permite anotar o mesmo elemento várias vezes com a mesma anotação.
Exemplo: @Repeatable na anotação ExceptionTest.
Processamento de Anotações Repetíveis:
- Cuidado no Processamento:
- Uso de getAnnotationsByType para acessar anotações repetidas e não repetidas.
- Verificação de ambos os tipos de anotação (individual e contêiner).
Conclusão:
Vantagens das Anotações:
- Superioridade das anotações sobre os padrões de nomenclatura para fornecer informações adicionais ao código-fonte.
- Incentivo ao uso de anotações predefinidas e fornecidas por ferramentas.
Importância das Anotações:
Para Programadores:
- Programadores devem utilizar anotações predefinidas e fornecidas por IDEs ou ferramentas de análise estática para melhorar a qualidade das informações de diagnóstico.
- Este resumo destaca os principais pontos discutidos no trecho sobre a evolução do uso de anotações para substituir os padrões de nomenclatura tradicionais, abordando suas vantagens e fornecendo exemplos práticos e sugestões de implementação.
Top comments (0)