Domanda

Di recente ho iniziato a creare le mie annotazioni e allo sport TDD / BDD, avrei voluto unità di testare le mie annotazioni per creare una specifica chiara per loro. Tuttavia, poiché le annotazioni sono interfacce fondamentalmente solo di fantasia, che a mia conoscenza non può essere realmente istanziati direttamente, c'è qualche modo a corto di riflessione per unit test un'annotazione?

È stato utile?

Soluzione

Non è qualcosa che avrei solito scrivere dei test per, ma si potrebbe semplicemente creare un insieme di classi di test che uso e l'abuso l'annotazione, per verificare che sta memorizzando valori dei membri, che ha i valori di default corretti ecc.

Questo funziona solo su annotazioni runtime che vengono specfied sugli obiettivi corretti, naturalmente.

Nella mia esperienza, le annotazioni stessi sono raramente abbastanza interessante da giustificare test di unità - di solito è il codice che li usa che ha bisogno di test. Ma poi io non sono dal codice scuola di copertura del 100% del pensiero: -)

Altri suggerimenti

NOTE hanno un certo impatto (in caso contrario, non avrebbe senso per usarli). Quindi non provare la presenza di annotazione, ma l'effetto che dovrebbe avere.

È possibile test di unità, se la vostra definizione annotazione è ok: Può essere applicato per l'insieme valido di elementi, è disponibile in fase di esecuzione, se richiesto, non il valore predefinito inizializzato correttamente? Poi, più tardi, unità di testare la classe che elaborerà la vostra annotazione.

Non è possibile testare direttamente dal momento che, come avrete notato, non c'è niente da testare. Si potrebbe provare alcune cose, però:

  • Gli oggetti con annotazioni nel codice hanno alcun annotazioni previsti in fase di esecuzione
  • I valori di default sono stati inizializzati
  • Le annotazioni si legano alle cose che li aspetta a

Quando test di unità, una delle cose che si possono dimostrare è che l'implementazione sia conforme all'interfaccia. Quindi, se un'annotazione implica certo comportamento o in (ad esempio, le cose Serializable in realtà dovrebbe essere serializzabile ), si vorrebbe rappresentare questo nei test, anche.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top