Pergunta

Eu comecei recentemente a criação de minhas próprias anotações e ao esporte TDD / BDD, eu gostaria de teste de unidade minhas anotações para criar uma especificação clara para eles. Entretanto, desde que as anotações são basicamente as interfaces meramente de fantasia que ao meu conhecimento não pode ser realmente instanciado diretamente, existe alguma maneira curta de reflexão para teste de unidade uma anotação?

Foi útil?

Solução

Não é algo que eu faria testes geralmente escrita para, mas você poderia simplesmente criar um conjunto de classes de teste que usam e abusam da anotação, a prova que ele está armazenando seus valores membro, que tem os padrões corretos etc.

Isso só vai trabalhar em anotações de tempo de execução que são specfied sobre os alvos corretos, é claro.

Em minha experiência, as próprias anotações raramente são suficientes interessante para testes de unidade mandado - que normalmente é o código que usa-los de que as necessidades testando. Mas então eu não sou da escola de cobertura de código 100% de pensamento: -)

Outras dicas

Anotações ter algum impacto (caso contrário, seria inútil para usá-los). Portanto, não testar a presença anotação mas o efeito que deveria ter.

Você pode teste de unidade se a sua definição anotação é ok: ela pode ser aplicada ao conjunto válido de elementos, é disponível em tempo de execução, se necessário, se o valor padrão inicializado corretamente? Então, mais tarde, unidade de teste a classe que irá processar sua anotação.

Você não pode testá-los diretamente, já que, como você observou, não há nada lá para teste. Você poderia provar algumas coisas, no entanto:

  • Objetos com anotações no código tem nenhum anotações esperados em tempo de execução
  • Os valores padrão foram inicializados
  • As anotações ligam às coisas que você espera que eles

Quando você teste de unidade, uma das coisas que você pode provar é que seus conforma de execução à interface. Então, se uma anotação implica determinado comportamento ou propriedades (por exemplo Serializable coisas realmente deve ser serializável), você gostaria de representar isso em seus testes, também.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top