2011-11-01 21 views
26

Utilizzato lo strumento di verifica delle unità di misura in Visual Studio e ovviamente tenta di creare un'istanza delle mie classi astratte.Come testare le classi astratte

La mia domanda è: devo provare a unità test il modo in cui Visual Studio sta cercando di farmi fare, o dovrei creare una classe di simulazione da istanziare, o dovrei solo testare i metodi che usano questa classe astratta ?

Grazie.

risposta

44

Se ci sono metodi su questa classe astratta che vale la pena provare, è necessario testarli. Puoi sempre creare una sottoclasse della classe astratta per il test (e nominarla come MyAbstractClassTesting) e testare questa nuova classe concreta.

+0

Cosa succede se è "interno protetto" :) – sotn

16

Ci sono due punti di vista opposti:

  • Non testare classe astratta per sé, classi concrete di prova ereditate da esso
  • astratta classe dovrebbe essere testato anche perché fornisce alcune costruito in logica condivisa in tutti le classi ereditate in modo che solo testare la logica di base in classe astratta volta

io preferisco la seconda opzione (al momento) e test classi astratte utilizzando RhinoMocks PartialMock caratteristica che mi permette di creare un modello di un abstract classe.

5
  1. Basta testare le classi di implementazione.

  2. È sempre possibile creare un'implementazione specifica per i test che non aggiunge funzionalità aggiuntive.

  3. Ascoltare i test. Utilizzo di strumenti di simulazione che fanno magie per consentire test di classi astratte e metodi privati ​​ecc. Sono un odore di codice di prova

Problemi correlati