Spring GDS 25è Aniversari
Una empresa de logística que envia a 190 països va construir alguna cosa per enviar-se a si mateixa.
El mocking reemplaça una dependència real per una de falsa perquè una prova pugui córrer de manera aïllada. Quan el codi que comproves crida un proveïdor de pagaments, una base de dades o una API de tercers, no vols que la prova cobri de debò una targeta ni depengui que un servidor estigui dret. Un mock ocupa el lloc d'aquesta dependència, retorna la resposta que li indiques i et deixa verificar el codi en qüestió sense arrossegar el món sencer a la prova.
El vocabulari del voltant és precís, i les distincions importen. Un stub retorna una resposta enllaunada perquè el codi tingui alguna cosa amb què treballar. Un mock va més enllà i registra com va ser cridat, així la prova pot afirmar que una funció es va disparar amb els arguments correctes el nombre correcte de vegades. Un fake és una implementació lleugera i funcional, com una base de dades en memòria que es comporta com la real però només viu durant la prova. Fer mocking quan un checkout crida una API de pagaments significa que la prova pot simular un cobrament amb èxit, una targeta rebutjada i un timeout en tres execucions separades, cap de les quals toca diners reals.
La concessió és el realisme. Un mock només es comporta com tu li vas dir, així que si el teu supòsit sobre la dependència real està equivocat, la prova passa mentre producció falla. Per això els mocks pertanyen a les proves unitàries, on l'aïllament és l'objectiu, i les proves d'integració segueixen exercitant les connexions reals per confirmar que els supòsits se sostenen.
Fem mocking perquè les proves siguin ràpides i deterministes, i sabem on parar. Les proves unitàries mocken el món extern per córrer en mil·lisegons i no fallar mai per un singlot de xarxa. La capa d'integració manté les connexions reals, perquè aquest és l'únic lloc on un supòsit equivocat sobre una API de tercers s'atrapa de debò.
El risc que vigilem és una suite que està en verd perquè només prova els mocks. El nostre testing automatitzat manté els mocks honestos lligant-los als contractes reals i actualitzant-los quan una API canvia, de manera que una prova que passa significa codi que funciona i no una ficció còmoda. Documentem què s'ha falsejat i per què, perquè l'equip que hereti la suite sàpiga exactament què prova i què no.
Proves lentes, inestables o tocant serveis reals que no haurien? Estrenyem-les.
Una empresa de logística que envia a 190 països va construir alguna cosa per enviar-se a si mateixa.
Convertir una marca en un negoci que funciona.
Mig milió de persones. Una app. Zero caos.















