Press "Enter" to skip to content

Structuring JavaScript projects for testability


buon lunedì mattina oggi vorrei
per parlarti un po ‘di come
strutturare i miei progetti per la testabilità
Sono mpj e stai guardando divertente divertimento
funzionare si potrebbe chiedere perché è
questa persona pretenziosa che indossa una sciarpa
Non sono pretenzioso, bene, lo sono
pretenzioso ma è perché è così
Svezia Vivo in Svezia ed è molto
freddo in Svezia e ho avuto un raffreddore
dal freddo in Svezia, quindi sono io a freddo
ho un raffreddore che è anche il motivo per cui la mia voce
ricevere un sacco di richieste per mostrare di più
progetti del mondo reale sul canale quindi io
Ho pensato che avrei fatto ciò che non possiamo
mostra davvero un progetto dall’inizio alla fine
finisci perché è così
centinaia di ore di tempo e mi sarebbe
essere solo molto noioso cosa posso fare però
è quello di mostrare parti del mio sviluppo
processo sul Fun Fun Forum Automator
che è un piccolo strumento che ho quello
automatizza un sacco di piccole cose per
il forum Fun Fun a cui hai accesso
a se sei un patron del divertimento divertente
funzione se sei interessato a questo
puoi controllare quel video parlando
sul perché dovresti diventare un mecenate ma
non è davvero quello che non è veramente a
tutto necessario o anche necessario per
capisci questo video che è solo se
vuoi supportare il canale quindi lascia
ti mostro su cosa stiamo andando a lavorare
oggi va bene così questo è il Fun Fun
forum è un’installazione di discorso
che è un software di forum open source
E ‘davvero grandioso
e tra le altre capacità che ha
questi distintivi e quello che voglio fare è
crea badge per l’identità del tuo editor
o la tua persona di codice di vias o te un atomo
persona sei tu è una persona cieca o tua
persona vim
e assegna e darti la possibilità
di custodire questi distintivi a te stesso
perché sei come un veicolo straordinario
persona e per fare ciò che useremo
l’ API del discorso e abbiamo questo è
l’API del discorso abbiamo un endpoint
che ci consente di assegnare un badge a
utente
si chiama badge utente punto Jason e io
avere questa cosa chiamata divertente divertimento
Automator su Heroku che è già
facendo questo facendo un sacco di cose così
per esempio ha questo endpoint che
è un hacker hackerabile che è carino
cosa funky che puoi aggiungere
Jason arbitrario al tuo profilo utente e
allora altri utenti avranno accesso a questo e
è possibile creare app stupide su di esso è
solo che è solo una cosa divertente da
capacità del forum e sto dicendo
tu questo perché questo incitabile json
l’endpoint è ciò che stiamo per basare
questa cosa su come dare un’occhiata a questo
questo codice esistente quindi se guardi qui
e il nella mappa sorgente a proposito
questo codice è collegato nell’episodio
descrizione quindi se vuoi seguire
lungo puoi semplicemente controllare quello specifico
diramarsi
quindi quello che ci interessa qui è dentro
la funzione di Jason hackerabile , quindi facciamolo
in realtà hanno uno sguardo al si vede che
c’è un jason hackerabile con jhe’s
c’è anche un punto jason hackerabile
sandbox js e il punto jason hackable
prova bello, verificheremo
hackable sandbox hackerabile Jason ha insegnato
i sandbox ojs apriranno prima un
terminale integrato in realtà e io sono
andando a passare nodo punto SRC dot packable
json dot sandbox J’s e quello ci mostra
bene
mazzo di jason e whoops mi dispiace e
questo è fondamentalmente il json che abbiamo visto

sull’endpoint pure e si vede qui
quell’hackable Jason mi ha lasciato davvero
cancella quell’hackable Jason e basta
richiede hackable Jason questo e
poi lo chiama e poi lo registra
questo è tutto ciò che fa e questo ci dà
questa cosa sandbox è un concetto che io
piace usare solo per giocare con il
funzione dal vivo senza doversi preoccupare
con il resto dell’app questo è solo un
funzione che restituisce roba dal
dai veri dati, cosa è così piccolo
sandbox deve testare l’ hackable Jason
fuori e vedere come funziona, facciamo un
guarda il file jason JS hackable whoa
questo era strano questo richiede in alcuni
query e c’è una richiesta qui e
allora chiamiamo queer con il cosa
okay per renderci più incerti, facciamolo
dare un’occhiata a una query qui come fa
quel lavoro è un’altra funzione così
saltiamo nella query sandbox
quindi va bene così la query accetta un tre
e poi alcuni parametri e poi esso
annusiamo in effetti facciamo solo il
sandbox e dare un’occhiata a cosa cosa
fa così nodo SRC query sandbox jazz
va bene quindi questo ci dà un sacco di
le cose mi permetto di spiegarti cos’è
sta succedendo l’ inferno qui
quindi interrogati tre così nel discorso c’è
questa capacità di posso creare
query SQL arbitrarie sul discorso
database e li espongono come API
endpoint con esso che è molto molto
utile quando è necessario estrarre di grandi dimensioni
quantità di dati quindi quello che vedi qui è
la query numero tre che è in realtà
che lì e vedere che cosa quella query
è che gli utenti attivi giornalieri terminano
punto per il
per il forum in modo da poter vedere quanti
utenti che il forum ha in un dato momento
è molto utile per fare analisi dei dati
per i miei moderatori o me o te se tu
voglio vedere quante persone sono attive
sul forum e super sniff è
fondamentalmente solo una fantasia che console.log
Io uso per il debug di cose come questa è
un po ‘più di quanto ho scritto puoi controllare
se sei interessato
altrimenti puoi semplicemente pensarlo come
fare un po ‘come la stessa cosa di
questa non si muove se cambio questo a uno
che in realtà ci darà
JACK hackable lasciami in effetti solo leet
quei parametri perché Haeckel Jason
non si preoccupa delle sue risposte e di quello
ci fornisce questi dati in modo tale da darti un
pensa a quale domanda si dà solo noi
come l’SQL ROS in sostanza e poi
jason hackable ha il compito di distruggere
che un po ‘po’ per rimuovere come il
dati superflui di quel risultato così
forse possiamo vederlo qui non lo so
sì, così vedi qui come regala un
successo vero e ci dà rose e noi
in realtà non si preoccupano tutto ciò in modo da lasciare
chiudo la query sandbox e poi ho
uno sguardo di nuovo dentro Jason hackerabile
e prova a dare un senso a questo
quindi richiede questo in un hackerabile
JSON Factory il ragazzo questo è ancora
un po ‘di confusione, quindi facciamolo
saltare in questa fabbrica e vedere cosa è
cosa sta succedendo dentro a quello
va bene così ha una costante hackerabile
JSON di query ID tutto a posto e che tale
ha senso è è la query per questo
per questa cosa piace è se andiamo al
data Explorer è la query per il
jason hackable che ha senso allora
dichiara una funzione che
profondità su questo sta per dipendenze
e poi quella funzione ritornerà
un’altra funzione che è il reale
funzione che fa il jason D hackable
pazzo molto pescoso che in realtà chiama query
CC qui come quello che devi notare qui
è che stiamo facendo una dipendenza
iniezione stiamo iniettando il
dipendenze dalla funzione
di voi che li richiedono direttamente e il
La ragione per cui facciamo questo è così che possiamo
intercettarlo e testarlo sto andando a
mostralo più tardi ma che cosa fa
come se si chiamasse depth to query e quindi
prende solo quel risultato e poi esso
estrae gli utenti dalle file
che vedete qui dai risultati qui
che questa è solo la proprietà che esso
estratti non ha finora questa funzione
davvero non fa molto tipo
tutte le buone funzioni sono molto piccole e
fa molto poco quindi è una fabbrica
è la funzione jack hackerabile
a rende il vuoto un collegamento funziona così
torniamo all’hackable jason è il
noi siamo il microfono, quindi vedi un capello
puoi estrarlo per renderlo un po ‘ più
ovvio come l’ involucro di fabbrica e poi noi
chiamare la fabbrica con le dipendenze
quindi forse potrei renderlo un po ‘di più
ovvio facendo queste profondità e poi la
interrogare e quindi passare adattarsi qui così
questo è il modello che noi invece di
permettendo alla fabbrica stessa di richiedere
le cose sul proprio ci passano per
lasciatemi mostrare la Pasadena alla fabbrica
tu perché facciamo ciò che è così che noi
posso scrivere dei test per questo lasciami mostrare
come è strutturato un test in realtà
e ti chiedo di chiudere a tutti voi
ora questo è il test quindi prima di tutto
richiede in fabbrica, quindi non lo fa
preoccuparsi di questo file qui è solo questo
prova la fabbrica dove è la fabbrica
il codice reale è quello che siamo
testare così qui iniziamo la nostra suite di test
quindi questo è solo e una suite di test è
iniziato chiamando la descrizione e poi
all’interno di questo test potresti averlo
test multipli questo è questo test che
contiene solo un test finora perché
la funzione è molto semplice finora e
sì, lo chiamo semplicemente percorso felice e basta
di solito quello che chiamo il mio primo test
perché in seguito di solito i programmi di denominazione
emergono ma per me va bene così
stiamo testando la parte felice che è il
la prima cosa che facciamo e tu solo questo è
il prima di ogni ingerimento è questo che è
eseguito prima di ogni test e noi
creare un falso oggetto di dipendenza falso
oggetto di profondità che ha una query fasulla
oggetto che Porges conosce per ora e poi noi
creare la funzione jason hackable di
chiamando la fabbrica con le profondità o
false profondità lascia che ti mostri effettivamente il
la fabbrica fianco a fianco in modo che tu possa
motivo per questa cosa un po ‘
più come sanely lì va bene così e
ho bisogno di chiudere anche quello va bene così
abbiamo quando si chiama jason hackerabile
qui chiamerà le profondità non interrogare con
l’hackerabile
ID query Jason ma è qui e
in modo che verifichi se prova che si tratta di
chiamandolo con l’ID corretto che siamo
qui assegnando la profondità della query a come piace
stiamo creando questa falsa funzione
non è una funzione falsa è una funzione reale
ma è falso, non è vero
funzione di query di profondità e la prima cosa
quello che facciamo è che usiamo l’esperimento
che l’ID è uno, fammi solo in realtà
inizio il mio test runner wallaby che è
ottimo piccolo test runner che ho realizzato
è uno sponsor ma lo uso comunque tu
puoi controllare il video mostrandolo lì
se sei interessato, quindi se cambio questo
essere a questo test sta per rompersi
come se si aspettasse che fosse uno allora se lo fosse
non esplode qui sta andando a te
continuare e solo restituire una promessa che
risolve di apprezzare questo risultato che abbiamo visto
prima di X sono le righe con alcuni usi
roba e questo è quello che stiamo andando
arrivare qui così quando questo è risolto
è il risultato che faremo
guarda qui e poi verrà mappato
questo e crea questi nuovi oggetti con
username e hackerare bene giudicare una cabala
Proprietà di Jason, quindi se ho cambiato
questo a peggio, né un nome completo e dire
che vedi che va bene che fallirà qui
perché si aspettava che il valore fosse un po ‘
nome utente e ha ricevuto undefined
perché ho assegnato un nome terribile così
che è fondamentalmente come funziona abbiamo
questa funzione di fabbrica che accetta
dipendenze e quindi restituisce il nostro effettivo
funzione corretta e questi
dipendenze qui li scavalchiamo qui
con una funzione che si aspetta di essere
chiamato in un certo modo e se lo è
chiamato nel modo corretto che vorrebbe
restituire alcuni
dati simulati che vogliamo restituire
e quindi possiamo verificare quell’hackable
Jason fa effettivamente quello che ci aspettavamo
fare con quei dati qui e poi noi
restituiscilo semplicemente e aspettati di farlo
falla promettere che si risolve e quello
questo è tutto ciò per cui abbiamo tempo
oggi perché come sto cercando di mantenere
questi nuovi episodi breve e dolce si
probabilmente hanno come un milione di obiezioni
commenta le confusioni di pensieri intorno a questo
codice c’è di nuovo è possibile controllare il
il codice per questo per l’episodio in
descrizione dell’episodio trova che trova il
codice sorgente domani Martedì sto andando
essere codifica dal vivo come la base per
l’episodio della prossima settimana quindi se ne hai
commenti o pensieri o cose su cosa
hai visto qui oggi ti sei sintonizzato su quello
live stream puoi trovarmi su Twitch TV
slash fun fun funky that link is also
nella descrizione dell’episodio stiamo andando
iniziare con domande e risposte
su questo codice e come bene qualunque cosa
si vuole parlare davvero e poi
Sto per essere una codifica dal vivo e tu puoi
segui se ti piace
se sei nuovo allora benvenuto
ho appena guardato un episodio divertente
funzione li rilascio ogni lunedì
mattina Oh 800 GMT se sei smemorato
potete cliccare qui iscriversi accende
notifiche nell’app YouTube se tu
ce l’ hai o puoi semplicemente guardarne un’altra
episodio adesso cliccando qui e
non dimenticare di sintonizzarti sul live
Stream domani sono MP malato mbj fino a quando
Il prossimo lunedì mattina resta curioso
Please follow and like us: