Come testare gli interpreti in architettura pulita?

5

Dopo aver letto l'ultimo libro di Robert C. Martin, ho provato a sviluppare alcune grandi applicazioni Go che seguono un'architettura pulita. Durante la scrittura di interattori, ho finito con un sacco di test unitari complessi, perché l'interactor ha un sacco di dipendenze esterne.

Quali sono le migliori pratiche per testare gli interattori? Dovrei testare il percorso felice usando solo un test di integrazione? Usando i test unitari nell'interazione, finisco con un sacco di mock, non è qualcosa di cui sono felice.

Qualche consiglio o commento su questo?

Una delle applicazioni su cui sto lavorando è questa: link . È tutt'altro che eccezionale, ma è principalmente un terreno di gioco.

La prima conclusione che ricevo da questa domanda è che bisogna capire la differenza tra Mock, Fake e Stub.

    
posta luistm 02.04.2018 - 00:03
fonte

1 risposta

3

While writing interactors, I end up with a lot of complex unit tests, because the interactor has a lot of external dependencies.

Davvero?

Ilcontrollertipassaunmodellodirichiesta,costruisciunarisposta,dopoaverparlatoconalcuneentitàeinvialoaunpresentatore.Questonondovrebbeessereuntestunitariocomplessoperchéqualsiasiinteractornondovrebbefarenulladipiùcomplessodiquello.Quinonvedoalcunadipendenzachedeveessereesterna.

Nondovrestisolotestareilpercorsofelice.L'80%dellacodificahaachefareconlecosecongraziaquandosbagliano.Macontinuaarisolvereiproblemichepossonoeffettivamenteesserecausati.

UsingunittestsintheinteractorIendupwithalotofmocks.

ManVorreisapereesattamentecosaintendeviquandodici mock ma qualunque cosa tipo di test doppio che usi, non utilizzarlo per testare cose a cui non interessa nessuno. Potresti fare tutti i tipi di test pazzeschi facendo in modo che le tue entità di test con affermazioni in loro siano certe, ma quello che ci interessa qui è inviare il giusto modello di risposta al presentatore giusto. Se stai testando più di questo, non so perché.

    
risposta data 03.04.2018 - 05:15
fonte

Leggi altre domande sui tag