Press "Enter" to skip to content

The BEST way to do mocking – FunFunFunction #8


fuori sta piovendo è questo è un
bel tempo per sedersi dentro e fare
una funzione ciao video ecco un paio
di settimane fa ho fatto un video su come
per ottenere la vostra squadra a fare test di unità in
una parte di quel video di cui ho parlato
come fare Maki e nel video di oggi I
vorrebbe mostrarvi un po ‘
esempi pratici che mostrano come faccio
deride il titolo di questo video dice
che è il modo migliore per farsi beffe
ma questa è davvero una bugia, questo è giusto
come faccio beffe, ma ne ho avuto un sacco
successo con esso avrai praticamente
per giudicare voi stessi se si pensa che questo
è una buona idea o se ti sbagli, si
hai qualche codice di esempio che ho creato un
app per uccidere le luci in questa stanza così io
avere un po ‘di luci Philips nella mia
a casa puoi controllarli via
tramite app è davvero bello anche Hugh
un’API che useremo oggi
dimostrare alcuni test unitari in derisione
vedi che ho questo grande bianco
luci in faccia quando registro
e quando io quando sto registrando voglio
spegni le luci per rendere il
illuminazione completamente prevedibile così
fa girare così oggi ho
creato una piccola utility da riga di comando per
farlo in fretta e questo è come funziona
Scrivo solo luci per uccidere
dice non autenticato per favore premi
il pulsante sul tuo bridge ed esegui questo
script di nuovo quindi dovrò andare oltre
e premi il pulsante su quel ponte
dimostrare che ho accesso fisico al
ponte fatto ora scrivo solo le luci
di nuovo e ora è autenticato e ora
osserva la lampada indietro che è il
interezza del software quindi questo piccolo
L’API interagisce prima con tre cose
l’API hue, ovviamente, con l’API hue
crea un nome utente di tonalità che salva
sul file system scrive anche fuori
cosa fa alla console
faremo riferimento al codice che
fa tutte queste cose come nucleo e più fresco
è ciò che stiamo testando core è l’unità
nella nostra unità testare l’API della console hue in
il file system non è quello che stiamo scrivendo
i test per noi stanno assumendo che funzionano
ci riferiremo collettivamente al
servizi che sono intorno al nucleo che
non stiamo testando come la shell, quindi facciamolo
dai un’occhiata a questo piccolo
progetto lo metto su github che puoi
trova il link in questa descrizione dello spettacolo
prima di iniziare, si prega di notare che questo è
non un tutorial questo è uno schizzo per
comunicare un’idea quindi non farsi prendere
nei dettagli, invece, prova solo a
concentrati sull’idea generale, quindi abbiamo a
un paio di file qui abbiamo test
jeaious che è il nostro test di unità cui siamo
vedremo quelli tra un po ‘ e noi
vedi anche core e Cheryl qui andiamo
uno sguardo al nucleo prima la prima cosa
che noterai che qui è lì
non ci sono dichiarazioni obbligatorie in cima
invece tutte le cose che al centro
ha bisogno dall’esterno dell’API di tonalità
definire la console di sistema vengono iniettati qui
nei servizi di servizi sono le cose che
vive al di fuori del core nella shell se
guardi qui sulla linea 3 lo vedi
stiamo leggendo da un file questo è solo un
normale file di lettura in alto, ma al posto di
essendo richiesto viene iniettato come a
proprietà sull’oggetto servizi e
questa è un’idea generale del resto del
il codice in questo file non è realmente
importante quindi diamo un’occhiata dove il
oggetto di servizio è creare la shell così
questo è un guscio ciò che vediamo qui è il
nucleo richiesto e poi vediamo il
FS e
note API e console di hue appena impostate
come proprietà qui sui servizi
oggetto e l’oggetto servizi è giusto
essere impostato qui come argomento per il
core in una vera app non di esempio
probabilmente hanno veri argomenti qui essere
passato al nucleo ma tu solo
hanno immaginare che
e solo in fretta solo per darti un
senso di tutta l’ applicazione questo è
Lavoro CLI JS che è fondamentalmente il
corridore dell’app che funziona
quando entri nell’uccisione uccisa
comando luci e richiede solo
shell e lo chiama ovviamente
facciamo tutto questo per renderlo facile
per mettere fuori tutti i servizi nel
shell diamo un’occhiata al test di Jas
prima di tutto abbiamo bisogno del nastro per il
prova se non hai visto il nastro prima
è proprio come è un corridore di prova come
mocha solo più semplice abbiamo bisogno di Zenon Jas
se non sai cos’è questo è un
la libreria di derisione la usiamo fondamentalmente per
fare funzioni false che restituiscono false
i valori sono più semplici e richiediamo il core
ricorda che il nucleo è l’unità che siamo
test nei nostri test unitari non lo facciamo
davvero a cuore i servizi nel
shell che è il problema di qualcun altro noi
cura di come il nucleo interagisce con quelli
servizi e questo è quello che stiamo testando
passiamo attraverso il test di stampa qui
sulla linea 37 stiamo realizzando il codice attuale
il nucleo e stiamo passando nel
servizi come oggetto di servizio che
stiamo creando qui sulla linea 31 abbiamo a
aiutante per questo perché lo facciamo dentro
ogni prova così diamo un’occhiata a quella
e creare il servizio stomps qui
un ottimo servizio si ferma solo per fare un oggetto
che contiene versioni finte del
servizi nella shell che si interrompe sonam
invece delle reali implementazioni qui
nota qui che stiamo solo prendendo in giro il
cose che sappiamo sono necessarie nel
verifica che il vero nodo della libreria FS abbia modo
più metodi di questo, ma ci interessa solo
su questi due perché quelli sono i
solo quelli usati dal nostro codice così
non c’è assolutamente bisogno di fare un
versione fittizia generica dei tuoi oggetti
beffardo è che richiede tempo e
difficile quindi si dovrebbe fare il meno
possibile in modo torniamo verso il
test
se guardate qui sulla linea 35 questo è
dove intercettiamo il veicolo del debriefing
lascia che divida in due righe per te
qui quando il nucleo cerca di leggere il
nome utente memorizzato nel file system
otterrà un errore qui e poi noi
verificato qui sulla linea 41 che core
gestisce questo errore correttamente e
risponde ad esso chiamando la registrazione
utente sull’API e questo è ciò che è
fai in modo di separare il tuo codice in due
parti il ​​nucleo che è la tua unità
stai testando la logica che è
senza dipendenza e poi hai il tuo
shell con cui sono tutte le dipendenze
effetti collaterali e cose e si inietta
in questo modo puoi farlo nella tua unità
prova l’ indice di una shell completamente falsa e
poi ispeziona il guscio se il nucleo
lo ha chiamato correttamente ogni volta
diverso e tendo a scrivere due
diversi test in ogni ora giusto ma
Tendo sempre a tornare a questi core
e semantica delle shell credo sia perché
è davvero facile ragionare e basta
non ha alcuna magia strana è solo
oggetti ci sono quadri di cast che
moc richiede dichiarazioni e cose del genere
ma questa è molta magia e io
Non so ottengo sempre nei guai
quando uso la magia durante la programmazione mi piace
il core della semantica della shell core semplice è
l’ unità che viene testata e tu sei
test che interagisce correttamente con
il guscio tutto questo come al solito è
ispirato da qualcuno molto più intelligente di
me
Gary Bernhardt e i suoi confini del negozio
anche collegato qui sotto è abbastanza grande te
ho appena visto un episodio divertente
funzione uno spettacolo settimanale in cui cerchiamo di
diventare più entusiasti e fiduciosi
programmando esplorando tutta la saggezza
idee selvagge e divertimento non mancano
sul prossimo episodio iscriviti fino a
il prossimo lunedì rimani curioso
tu
Please follow and like us: