TDD - Outside In sviluppo

0

Sono piuttosto a mio agio con i concetti chiave di Outside In (specialmente da questa domanda ). Tuttavia una cosa mi sfugge riguardo alle mazze che hai creato ad ogni livello che poi portano a creare la vera implementazione che la soluzione richiede ...

Continui a utilizzare i mock nei test di livello superiore ( di fuori ) e poi crei un'altra suite di test di integrazione che controllano che tutti i componenti di produzione funzionino come previsto?

O sostituisci gradualmente i mock nei test di livello superiore ( outside ) con i componenti di produzione funzionanti e poi butti via i mock?

    
posta thehowler 22.10.2015 - 19:41
fonte

1 risposta

4

Mantiene i mock

Sebbene i mock capiti di consentire il test prima che i componenti di produzione vengano scritti, non è l'unica ragione per usarli.

Le mazze ti danno il controllo esplicito sul loro comportamento.

Per ogni oggetto iniettato il cui oggetto di produzione di pari livello è statico o si basa su un sistema esterno (come un'unità disco, un database, ecc.), è molto più facile controllare il comportamento dell'oggetto deriso. In alcuni casi, può anche essere il modo solo per rendere l'oggetto restituire valori coerenti e precisi (ad esempio, un oggetto che restituisce l'ora corrente rispetto a un mock che può restituire un tempo pre-specificato).

Mantenere i mock nei tuoi test costringe l'oggetto test a rimanere liberamente accoppiato.

Se i test hanno iniziato a utilizzare direttamente gli oggetti di produzione, c'è poco da impedire a qualcuno di modificare l'oggetto testato per fare affidamento su quei tipi concreti. Questo, a sua volta, rende molto più facile per un manutentore pigro aggiornare l'oggetto testato in un modo che rende più difficile in futuro lo scambio della dipendenza in seguito.

    
risposta data 22.10.2015 - 20:12
fonte

Leggi altre domande sui tag