Press "Enter" to skip to content

Test driven development, mocking and dependency injection on real app


ciao questa settimana ho passato un po ‘di
tempo di lavoro su un progetto personale di
il mio dove ho davvero fatto uno sforzo
al primo test
il TDD e io abbiamo anche lavorato contro a
API esterna OBS API che ho usato per
commercio urlando così quando hai un
API esterna che ti dà ti dà un
buona occasione per fare un po ‘di derisione così
questo è quello che abbiamo fatto e ho anche mostrato un
un po ‘di come l’iniezione di dipendenza
funziona in pratica quindi questo video
spero che ti dia un’idea di
come puoi lavorare con TDD su un esterno
API in pratica Prima di saltare al
video Vorrei ringraziare oggi
sponsor brillante mi piace molto avere
brillante come sponsor perché lo sono
una buona destinazione per mandare gente
fuori quando vuoi imparare come il
basi della matematica che è richiesta per
apprendimento automatico e apprendimento dell’IA
perché è così fastidioso che cerchi di ottenere
nell’apprendimento automatico ma tu sei colpito
con tutta questa notazione matematica che tu
non so o tu hai
dimenticato da quando scuola quando
lo impari e funziona brillantemente
queste fantastiche sfide interattive
con un po ‘di gamification
per darti un senso di progresso
è davvero bello non è solo video
Certo, è in realtà interattivo
sfide interattive e io davvero
davvero così se si apprende la macchina
imparare la matematica suona attraente per te
dovresti andare alla brillante retorica
taglia FFF per iscriverti e aiuta davvero
al canale perché dice loro
che tu sia venuto da qui, lo dà anche
Hai uno sconto del 20% se ottieni il loro annuale
abbonamento grazie brillante a
lo spettacolo cosa faremo oggi noi
sto per fare un po ‘di codice che ho a
poco
Satbeer lasciami spiegare questa cosa
lì c’è uno streaming computer che
è quello che sta spingendo fuori il
ruscello per contrarre e questo sta prendendo
il feed dalla fotocamera sta prendendo il
il microfono e si alimenta che fino
a spaccare qui c’è il mio portatile che è
catturare lo schermo e spingerlo verso il
al controller del flusso il mio stream
padroneggiare il problema è che potresti vedere
che devo camminare qui per cambiare
scene e questo perché OBS è aperto
gli studi di trasmissione che siedono su questo
cosa sì
si è risiede laggiù e ho
OBS anche qui, ma è un altro OBS così
ovvio hanno questo c’è questo NPM
modulo per OBS perché c’è un NPM
modulo per tutto, quindi c’è questo
Il socket web OBS j / s può esporre il file
interfaccia locale ovvia per noi sì
e quello che voglio fare è che voglio
crea una piccola app web che espone il
scene su OBS per eseguire un’app Web e
mi permette di cliccare su questo computer e
cambia le scene su quel computer che
quali sono le scene per voi persone e
alla fine voglio anche esporlo a
qualcuno sul flusso forse qualcuno
rehire o qualcuno che fa volontariato
so che può essere la nostra produzione
manager e switch telecamere come noi
nelle scene mentre parliamo quale sarebbe
Davvero fantastico, quindi se qualcuno ti piace
l’ospite sta parlando ampiamente di noi
può semplicemente cambiare la telecamera per mostrare
noi quella persona potrei ipoteticamente essere
facendo tutto questo da solo il problema dentro
quando sei dentro come in una modalità conversazione e
ti stai concentrando sulla chat e mi piace
tutto ciò che non è davvero difficile così
quindi è stato bello esporlo a
altre persone che mi sono piaciute
con questo e ha scritto un mucchio di merda qui
davvero ma mi piacerebbe volere solo
fai questo dall’inizio e penso che sto andando
per cancellare questo qui e qui come ho detto
tu prima che non dovresti
avere cose come il nome di manager come un odore
e ho appena cancellato qualcosa di più
creativo come manager OBS quindi forse io
dovrebbe e fare come seguire la mia quello che io
predica che conosci e fai qualcosa chiamato
OBS cosa ovvia fino a quando non so se
questo e dentro sarà una cosa che sono
andando a creare una cosa nuova un nuovo file
e lo chiamerò creare non solo
si e il motivo per cui chiamerò
Oh
Ronin ha chiesto che la cosa del peso sia migliore di
manager no sono ugualmente male ma
manager è un po ‘che dormiamo perché
sembra che sia meglio così è la cosa
meglio perché questo mi permette di vedere dentro
il codice che questo è un nome segnaposto
e probabilmente lo aggiusterò prima che lo commetto
o spingilo o e bene il manager è un nome
quello è davvero come spazzatura come una cosa
ma potrebbe finire nel repo comunque
e perché
suona bene ma la ragione che voglio
per chiamare questo test è perché vedi
come mi piace continuare a dimenticare come
aumentare la dimensione del carattere sai già
sì qualcosa come questo sì perché io
voglio creare come la base
la funzione qui sarà creata
La cosa di OBS e questo è come l’unità
che stiamo andando a testare e
creare implica che questa è una fabbrica
restituirà un’interfaccia con
funzioni come ottenere l’elenco visto sì
qualcosa come questo e quello dovrebbero
restituire una matrice di tutte le cose con
con i nomi conosci la codifica del nome
codifica di codifica ed erano come oh scusate un
array ci andiamo e sto solo dando
ti piace un esempio qui ora la mia codifica
o come ottenere la fotocamera solo qualcosa di simile
che così vediamo qui comincerò
wallaby su questo file wallaby è un it’s a
test runner non sto usando è davvero
bello ma non ci sono test in questo file
ancora e così mm-hmm
e abbiamo questo è Ronnie no sì
questo ora non sta facendo funzionare il suo io
bisogno anche di come descrivere
no mai usato
hmm perché non sta facendo funzionare niente
qualcuno aveva un’idea del perché
no, forse capirò che lo farò
cancella questi per ora penso che lo siano
rovinando la mia suite di test no, non lo sono
perché non è questo in esecuzione
ciao ciao un artista è così la funzione
e il test è nello stesso file yeah I
di solito piace iniziare in questo modo
in realtà oh aspetta che ci sia qualche errore qui
Trey Toby non va bene ma non è mai stato usato
oh, forse la sedia della lanugine è così
strano ho dovuto salvarlo mmm molto
funky tutto bene comunque stiamo correndo
quindi avrebbero descritto la creazione
Cosa di Tobias e stiamo andando a testare
qualcosa come ottenere scene e grande
sarai una cosa che sarà come
dobbiamo richiedere la reale
componente che penso sia guardiamo
all’interno confezionato up Jason stiamo andando
ce l’ho, sì, mmmm, yum, yum, yum, yum
AJS sito OBS così io lo definirei
oh si si usa il nodo richiede qui
perché l’ ultima volta che ho provato richiede
non ha funzionato troppo bene
e io sono il non sono sì ancora felice
MDS oh se si esporta questo linker
non si lamenterà Grazie Sig. programmatore
esportazione Oh
[Musica]
oops si grazie
quello che faremo è che faremo a
costituiscono la cosa della sporcizia e tutto ciò
quello rilevato non lo creeremo
una cosa ovvia e la cosa ovvia
sta per prendere come il websocket j / s
cosa e diamo un’occhiata al
documentazione per questo
[Musica]
dove siamo
quindi ho questa cosa e poi abbiamo ragione
Fai questo
e vogliamo andare bene, lo faremo
chiamerò quel web OBS, quindi prendilo e
creare cose OBS non è la multa
questo perché è esportato bene così
ora siamo qui e da da da da da da
da sto andando proprio bene qui e
vedere dove siamo
quindi abbiamo questo oggetto chiamato get scene
liste e chiamerò per vedere cosa
noi abbiamo
sì, questo ci dà questo bene
questa lista di dati spazzatura e tu sai
probabilmente non lo vogliamo, vogliamo avere il
crea cose ovvie che fai
connessione o vogliamo che ottenga il
oggetti connessi penso che in realtà
volevo connetterci o vogliamo farlo
iniettare quello che ha già
stato stato collegato così siamo chiamerai
ha collegato il sito web OBS
sarà come qualcosa che tu
devo iniettare in questa cosa così per ora
faremo la connessione al di fuori di
non rende questo un po ‘
più piccolo e capita di sapere che il mio
la password per il mio OBS è segreta andiamo
torna al molo e vedi dove siamo
mandare richieste quotidiane a Lily Lily Lily
senza problemi a questo e alla connessione
ci darà una premessa adeguata, quindi cosa?
faremo è malato quando non lo sono
vai e fai questo cantare, così te ne accorgi
qui che sto scrivendo un sacco di cose
solo nel test perché mi piace fare
questo e poi solo a caso poi sono
cominceremo quindi a ripiegare
in file e funzioni, ma mi piace
basta iniziare a giocare intorno appena il dumping
la roba nel test prima c’è un
molto tipo di come un po ‘di a
immondizia e poi lavoreremo
da lì e ad essere onesti come se non lo fossi
come se fosse così tanto tempo da quando l’ ho fatto
in realtà lo sto codificando in un certo modo
sviluppando il mio processo di test adesso
mentre parliamo , stiamo solo giocando intorno a
un pochino, quindi ho intenzione di essere il mio
aspetta questa connessione e poi lo sono
manderò questo kit per vedere la lista
e sì, quello che abbiamo qui oops aspetta
quindi cosa abbiamo ottenuto qui oh figo
queste sono in realtà le scene reali in
il mio nel mio locale OBS che vedi qui vias
schermi di codice in normale questi sono i
scene che stiamo ottenendo, così sto andando
copiare questo e vedere quello che facciamo qui sono
incollerò questo qui e
ile koji biggie dice come la coca
sembrava così utile sì, questo è in realtà
un altro strumento della stessa azienda
chiamato wallaby quindi è un corridore di prova così
vedi questi piccoli puntini verdi
la sinistra che mostra copertura ma
è come ogni volta che lo salvo solo
mi tiene in esecuzione il test e anche questo
mi dà queste piccole cose interessanti
mi permette di fare questi commenti dal vivo e
fai cose simili a questa densità
un sacco di altre cose è che è un
prodotto davvero molto interessante , quindi quali sono
stiamo facendo bene qui, quindi quello che sto facendo
ecco che sto facendo questo comando di invio
Vorrei che la cosa di OBS lo facesse
invece di avere qui dati falsi
vorrebbe mettere quella interna del
lato della cosa ovvia quindi se lo passo
presa OBS collegata e troppo ovvia
cosa ma stiamo già facendo questo
il comando away dovrebbe essere eseguito qui
non siamo più cene quindi cosa fa
questo mi dà questo è molto bello l’inferno
sta accadendo ora sono terminato calmo mio
lunghezza orecchie è chiaramente troppo arrabbiato
giusto così se guardiamo qui lo vedrai
mio
ciò che è senza soluzione di continuità non è così
restituire qualsiasi cosa ora ovviamente lo è
in realtà è bello come si può effettivamente mostrare
promette in linea ma da questo
Non ho alcun peso solo
termina il test prima che arriviamo
tutto ciò di cui abbiamo bisogno in questo modo lo è
qui così ora vediamo questo è in realtà
facendo che cosa è che vogliamo che il
il problema è che sta usando il suo utilizzo
dati in tempo reale che è male, quindi vogliamo
prendi in giro questo e sto prendendo in giro questo
collegato cosa WebSocket qui e io
Ne hai bisogno DT DT quindi commentiamo questo
questi dati live che stiamo facendo qui
e vogliamo il WebSocket connesso a
essere come una costante
chiamerai questa WebSocket cosa
sono le tue opinioni su questa cosa
come io tendo a chiamare le cose un po ‘deridere
alle persone piace lavorare per iniziare a fare
la distinzione tra simili mock e
doppi e falsi ma la cosa è da allora
non esiste una definizione concordata di
queste cose che tendono a scoprire che è
solo confuso quindi tendo a non farlo
Tendo a chiamare semplicemente le cose di più e poi
vogliamo prendere il comando send e
letteralmente non userò la MS
fare una funzione di simulazione manuale qui no
farò uso del giusto beffardo
funziona perché
è un po ‘di confusione
inutilmente confuso quindi sono solo
chiamerò questo nome e poi lo farò
aspettati che il nome del comando sia ed essere
vedremo la lista e poi lo farò
ancora una volta uccidimi, tornerò un po ‘
dati falsi sarò prendere questi dati reali
che abbiamo catturato prima di Whoops I’m gonna
incollare questo e che ha un po ‘di
roba qui che non ci importa di tutto
al momento sì, rimuovilo
onestamente perché non è rilevante
il test
potremmo creare cose che sono andate
più tardi ma per ora sono davvero giusto
interessati a questi dati qui dobbiamo noi
mantieni la valuta che penso dovremmo
in realtà chiameremo questa scena
scena scena a e la chiamo scena che vedo
oops scena essere
qualcosa del genere
oops si vede come sto prendendo il live
dati e lo sto sostituendo con alcuni
nomi che hanno un senso per il nostro test di
rendere il nostro test un po ‘ leggibile anche
sebbene io abbia perfettamente usato il codice
per noi abbiamo usato dati in tempo reale ma testiamo i test
sono più come me per lo più
su leggibilità e documentazione e
mantenermi concentrato su quello che è
quello che sto facendo vede okay che abbiamo
falsificato con successo il nostro invio, vieni qui
ci andiamo
non è usato, quindi devo incollare di nuovo
e ora abbiamo la stessa lista qui guarda
a questo
facciamo un po ‘di cose
più piccolo in modo che possiamo vedere l’intero
cosa così se guardiamo qui sto incollando sono
creando questa finta cosa OBS WebSocket
e poi viene passato qui
qui e poi stiamo chiamando l’invio get
elenco visto e quindi stiamo solo tornando
qualunque cosa otteniamo qual è questo codice
qui e questo ci dà questo
i dati sono come dire che lo metto io
farò in modo che i nostri test
sempre come questa piccola affermazione fallisce
Chiamerò che ottiene eNOS come vediamo
allora il test si rompe è come un
molto bene questo è un ottimo patto in
generale e mi piace solo provare a fare il tuo
controlla che i tuoi test si interrompano effettivamente
quando cambi il codice e ma
diciamo che vogliamo anche fare un
un po ‘di trasformazione su questo
perché c’era più spazzatura in questi
facciamo in realtà aggiungiamolo
di nuovo nella fonte, penso che sia stato chiamato
fonti sì esattamente questa merda e
c’è anche l’ID di un messaggio qui
queste cose e voglio onestamente queste
per essere spogliato perché non lo farei
piace avere questo come un po ‘ di a
interfaccia semplificata per il
deriso e che verrà usato dal
l’interfaccia frontone e volevo
spingere come se non lo volessi spingere
tutto incluso nel mio mio setup tale
come i nomi delle mie macchine fotografiche e
microfoni e cose del genere
perché è solo che non voglio che sia
Lì, quindi, prenderò questo
cosa qui e ho intenzione di portarmi via cons
e dati del college e restituire i dati e
ci vediamo bene dove siamo noi
okay, dobbiamo fare la stessa funzione
penso che penso di pensare
il wallaby è molto meglio del codice vs
solo l’estensione dice chiede una compilazione a
merda mi dispiace che cosa
la mia pronuncia del tuo nome si lo è
sicuramente è come il wallaby
ridicolmente potente ma è meglio è
meglio così difficile, proprio come il
l’estensione del codice giusto è gratuita ma io
mi piace molto il potere che dà il wallaby
io per quello che è come un centinaio
dollari o qualcosa che è wallaby
essere sviato qui, quindi sono solo
prenderà cuciture a punto punto e poi mapperà
che lo vede davvero interessato solo a
il nome qui facendo ciò che sta accadendo
conosci le loro scene qualcosa di simile
quel ritorno
quindi cosa stiamo girando ora va bene ?
giusto io che vado voglio alcune affermazioni qui
ora vediamo che mi costerà qualcosa
quindi vogliamo aspettarci le scene punto I
non lo aspetterò prima una seconda scena
avrai un nome che cosa si aspettava
per il nome C essere noi scene essere scene
ora ovviamente
è un po ‘ostinato nominando il sig.
banchiere ciao benvenuto
okay okay vediamo qui, eccoci qui
chiamerò questa scena-stato o
qualcosa perché includerà
scena attuale pure
no, in realtà rinominiamo questo intero
cosa per ottenere scena-stato
lì andiamo nello stesso stato stesso stato
e sì e voglio anche essere sicuro
che questo ID messaggio sta andando , no
voglio che sia anche tu
pensato che sarebbe o commettere ma no
solo il riferimento si aspetta
si aspettano di essere falso che sia noto per essere
tazze non definite per essere al telefono
okay, abbiamo questo controllo ora voglio
come in realtà assicurati che questo sia così
test funziona così ho intenzione di tornare a
il codice qui e sto per tornare
i dati direttamente e lasciatemi commentare
tocco oh sì freddo
ora questo non funziona correttamente così io
potrebbe tornare indietro e rimuovere la dichiarazione
e il nostro test non è in esecuzione Ho anche fare
voglio essere sicuro che la scena attuale sia
lì ma non voglio questo siamo
nominando voglio che sia come JavaScript
stile attuale che vede lo stato del punto corrente
visto essere
eccoci
bello aspettarsi che la scena sia, ma ha ricevuto
indefinito quindi sta fallendo se lo voglio
e così ora stiamo facendo un po ‘
di TDD qui invece come va bene tendo a
passa un po ‘da testare
guidato e in fase di test dopo come e come
a lungo come i tuoi test come quando c’è un
API Tendo a piacere iniziare con l’API
e ci lavoro indietro ma in questo
caso a volte mi piace il senso
di come in realtà aver fallito il test
prima dipende un po ‘da come
molto erba ho dell’applicazione così
vediamo che lo chiamerò
attuale e poi me ne vado a prendere
dati attuali CC e ora siamo di colore rosso verde
beh , non è vero ?
spero a te perché senza tempo ma
almeno siamo arrivati ​​da qualche parte noi
è arrivato da qualche parte non come se fossi
questo e lo incollerò semplicemente in a
Gist ha scritto un test per grande ovvio
cosa prova questa funzione che noi
creato sulla cosa chiamata scena Stato
funziona su chiamata scena Stato su
cosa dopo aver creato cosa che
richiede e un WebSocket OBS connesso
come un parametro di istanza e questo
è un vero WebSocket ovvio
l’una cosa del modulo NPM ma noi abbiamo
creare
fingere qui perché non vogliamo il nostro
test per avere un sacco di effetti collaterali
così il nostro gli diamo un metodo di invio che
accetta un nome comune che ci aspettiamo
essere ancora visto lista e abbiamo provato che questo
non riesce a cambiarlo
qualcos’altro e poi restituisce questo
questi dati qui è che sarà
l’attuale visto visto è come se fosse vivo
dati che sono stati catturati dai primi test
fuori dal modulo npm è qui
wallaby o qualcosa di vivo valuta
qualsiasi cosa risulta davvero utile nel mio
opinione perché ti permette di piacere
copia / incolla facilmente i dati in tempo reale e poi
modulo come lo stampi per il tuo test comunque
i dati assomiglia a questo ha un che ha
un sacco di cose che davvero non lo facciamo
voglio lì come rimuoviamo questo messaggio
ID e ci aspettavamo questo qui ho aggiunto
alcune fonti qui, ma non siamo riusciti a
il punto in cui inizieremo a rimuovere
quei dati che probabilmente sarebbero quello che io
farei dopo
anche io vedo qui che manda a questo punto
come se la finta ci stesse dando davvero
dandoci un metodo di sincronizzazione che è sbagliato
questo dovrebbe essere questo dovrebbe essere
asincrono funziona ancora perché loro
il peso non mi importa molto ma ma si
è questo non dovrebbe essere sincrono e
e sì così così questo solo qui
cancella questi dati e si limita a ripulire
i dati un po ‘e lo rendono bello
non manipolazione di dati davvero e
dopo averlo scoperto
abbiamo ispezionato qui e scrivo è come
questo sì per essere in grado di ispezionarlo facilmente
con wallaby e poi faccio un mucchio di
aspettative su di loro e poi suoniamo
questo è quanto abbiamo avuto noi
ha fatto un po ‘di iniezione
e abbiamo fatto un po ‘di cose un po’
un po ‘di derisione grazie mille per
guardando un piccolo promemoria qui per controllare
il nostro eccellente sponsor è brillante
brillante a Oryx slash FFF per imparare così
matematica per l’apprendimento automatico se ti piace
formato di codifica dal vivo che puoi controllare
fuori questa playlist dove il simile
i video qui puoi anche iscriverti
cliccando qui o anche prenderci quando noi
registrali con lime a twitch.tv slash farm
funzione del telefono fino alla prossima settimana
curioso
Please follow and like us: