Laravel Testing Decoded (Italian)
Laravel Testing Decoded (Italian)
Il libro sul testing che stavi aspettando.
Informazioni sul Libro
L'ho visto tante, troppe volte. La tua applicazione cresce e allo stesso modo la codebase comincia ad appesantirsi. Senza nessun test a consolarti. Molto prima di quanto tu possa immaginare diventa impossibile anche pensare di rimediare ad alcuni errori.
Proprio in questi momenti cominci a pensare che si, forse è il caso di cominciare ad imparare qualcosa di più sul testing. Sicuramente avrai già letto qualche libro dedicato all'argomento, ma quanto c'è davvero tra il dire e il fare? Tanto.
Uno dei grandi problemi del testing è che può essere confusionario, all'inizio, se non hai un metodo. Una delle cose più difficili del testing è proprio capire "come" e "cosa" testare, non come scrivere un test.
Insomma, c'è bisogno di fare pratica, per arrivare a quello che viene detto un momento "aha".
Questo libro non parla solo di testing, ma parla anche di Laravel. Nello specifico, introduce alcuni concetti validi per qualsiasi linguaggio, per poi "declinarli" nella pratica tramite lo studio (e l'uso) di alcuni tool dedicati al nostro framework preferito.
Tutti gli eventuali aggiornamenti, ovviamente, saranno gratuiti.
Indice
-
Benvenuto
- È Cominciata!
- Questo Libro è Davvero Adatto a Me?
- Perché Proprio Laravel?
- Esercizi
- Errata
- Come Usare Questo Libro
- Contatti
- Nel Grande Ignoto
-
Capitolo 1: Testa Tutto
- Si, tu fai già dei test.
-
6 Pro del TDD (Test Driven Development)
- 1. Sicurezza
- 2. Contributi
- 3. Mettersi nei Panni del “Ragazzo Più Grande”
- 4. La testabilità migliora l’architettura.
- 5. Documentazione
- 6. È Divertente
- Cosa Dovrei Testare?
- Una Nota Importante
-
Sei Segni di un Codice Non Testabile
- 1. Operatore “new”
- 2. Costruttori “Sbagliati”
-
3. E, e, e…
- Quattro Modi di Capire Quando una Classe Ha Troppe Responsabilità
- 4. Troppi Percorsi? È Tempo di Polimorfismo!
- 5. Troppe Dipendenze
- 6. Troppi Bug
-
Il “Jargon” del Testing
- Unit Testing
- Model Testing
- Integration Testing
- Functional Testing
- Acceptance Testing
- Relax
-
Capitolo 2: Introduzione a PHPUnit
-
Installazione
- Rendere i package disponibili globalmente
-
Le prime assertions
- Analisi della classe Test
- assertTrue
- assertEquals
- assertSame
- assertContains
- assertArrayHasKey
- assertInternalType
- assertInstanceOf
- Asserzione di eccezioni
- Conclusioni
-
Installazione
-
Capitolo 3: Configurare PHPUnit
-
Opzioni
- Technicolor Time
- Bootstrapping
- Formati di Output
- File di Configurazione XML
-
Testing continuo
- Osservare i file
- Trigger di più file
- Consigli specifici per Vim
- Conclusioni
-
Opzioni
-
Capitolo 4: Un PHPUnit meno… logorroico
- Importare asserzioni come funzioni
- Un PHPUnit… più Laravel
-
Capitolo 5: L’ABC dello Unit Testing
- I dubbi
- Unit Testing
- Arrange, act ed assert
- Testare in isolamento
- I test non dovrebbero essere dipendenti da un certo ordine
- Test-Driven Development
- Behavior-Driven Development
-
Testare una funzione
-
Slime e Generalizzazione
- Slime
- Generalizzazione
- Passare i test
-
Slime e Generalizzazione
-
Testing delle classi
- Refactoring dei test
- Refactoring del codice di produzione
-
Polimorfismo
- Estendibilità
- Mock
-
Progetto completato!
- Codice finale
- Conclusioni
-
Chapter 6: Testing dei Model
- Cosa testare?
-
Accessor e Mutator
- Gli anni di un gatto
- Password hashing
- Metodi custom
- Metodi con query semplici
-
Validazioni
- Helper
- Factory
-
Laravel Test Helper
- Factory
- Override
- Model
-
Test helper
- assertValid e assertNotValid
- Asserzione di relazioni
- Conclusione
-
Capitolo 7: Semplificare i propri test con Mockery
- Mocking?
- Installazione
-
Il Dubbio
- Dependency Injection
-
La Soluzione
- Mock semplice di oggetti
- Valori di ritorno dei metodi
- Aspettative
- Mock parziali
- Hamcrest
- Conclusioni
-
Capitolo 8: Database di Test
- Test Database
- Specifica dell’Ambiente
- Chiamare Artisan dai Test
- Prova Tu!
- Database in Memoria
- Conclusioni
-
Capitolo 9: Un Gioco di Scambi
- Mockery
-
Testing
- Mocking di Eventi
- Conclusioni
-
Capitolo 10: Testing dei Controller
- Cosa fa un controller?
- I 3 passi per testare un controller
-
L’Hello World del controller testing
- L’overloading è tuo amico
- Chiamare le action dei controller
- Le asserzioni di Laravel
-
Mocking del database
- Refactoring!
- Il Container IoC
- Redirect
- Percorsi
- Repository
-
Struttura
- Aggiornamento dei test
-
Crawling del DOM
- Assicurarsi che una view contenga dei testi
-
Traversing Base
- Fetch in base alla posizione
- Fetch (primo o ultimo)
- Fetch di elementi “fratelli”
- Fetch di elementi child
- Fetch di contenuti testuali
- Form
- Conclusioni
-
Capitolo 11: Il Container IoC
-
Cosa? Dependency Injection?
- Injection nel Costruttore
- Injection da Setter
-
Risoluzione
- Soluzione 1: Default
- Soluzione 2: Risoluzione (o Resolving)
-
Binding con App
-
- Interfacce
- Esempio 2: Automatic Resolution
- Extra
-
- Conclusioni
-
Cosa? Dependency Injection?
-
Capitolo 12: Uso dei Comandi di Artisan nel Testing
-
ABC dei Comandi
- Scaffolding
- Parametri
- Opzioni
- Principio di Isolamento delle Responsabilità
-
Esercizi
- Creare il Package
- Generazione del Comando
- Service Provider
-
Test dei Comandi Artisan
- Planning
- Aspettative
- Dependency Injection
- Classe Generator
- Far Passare il Test
- Testing del Generatore
- Conclusioni
-
ABC dei Comandi
-
Capitolo 13: Test di API
-
Le API in Laravel
-
Tre Componenti per Scrivere un’API in Laravel
- 1. Autenticazione
- 2. Prefisso delle Route
- 3. Output in JSON
-
Tre Componenti per Scrivere un’API in Laravel
-
Testing di API
- Usa un Database in Memoria
- Migration del Database per Ogni Test
- Attivazione dei Filtri
- Imposta l’Utente da Usare
-
Esempi di Test
- Test 1: l’utente deve essere autenticato
- Controlla gli Errori
-
Fetch di Tutte le Foto dell’Utente
- Refactoring
-
Update di una Foto
- Factory
- Specifica di Opzioni
- Conclusioni
-
Le API in Laravel
-
Capitolo 14: Acceptance Testing con Codeception
- Qualcosa di semplice
-
Testing Refresher
- Acceptance testing
-
Installazione
- Installazione Globale
- Installazione Locale
- Bootstrap
- Configurazione degli Acceptance Test
-
Generare un Test
- Creazione Manuale
-
Creazione con Generatore
- Analisi del Comando
- Scrittura del Primo Test
- Esecuzione dei Test
- Conclusioni
-
Capitolo 15: Autenticazione e Codeception
- La Feature
- Dalla feature a Codeception
-
Registrazione delle route
- Costruzione del form
- Risorse
-
Autenticazione dell’Utente
- Aggiunta del Database di Test
- Credenziali non Valide
- Conclusioni
-
Capitolo 16: Functional Testing con Codeception
-
Il Modulo Laravel4
- Il Modulo DB
- Update di TestGuy
- Registrazione di un Utente
- Conclusioni
-
Il Modulo Laravel4
-
Capitolo 17: Continuous Integration con Travis CI
-
Hello Travis!
- 1. Connessione
- 2. Registra gli Hook
- 3. Configura
-
Configurazione del Build
- Le Basi Assolute
- Boostrap
- Registrazione delle Dipendenze
-
Notifiche
- Disattiva le Notifiche
- Imposta i Destinatari
- IRC
- Conclusioni
-
Hello Travis!
-
FAQ - Domande Frequenti
-
1. Come posso testare le funzioni globali (global functions)?
- Mock
- Il “trucco” dei namespace
- 2. Come creo un dump SQL per codeception?
- 3. Come posso fare dei test su metodi protected?
- 4. Secondo te devo testare i getter e i setter?
- 5. Perché PHPUnit ignora i miei filtri?
-
6. Posso fare il mock di un metodo in una classe che sto testando?
- Partial mock tradizionali
- Partial mock passivi
- 7. Preferisco usare gli underscore nei nomi dei miei test. Va bene?
-
1. Come posso testare le funzioni globali (global functions)?
-
Arrivederci!
- Prima di Andartene…
La Garanzia di Soddisfazione al 100% di 60 Giorni Leanpub
Entro 60 giorni dall'acquisto puoi ottenere un rimborso del 100% su qualsiasi acquisto Leanpub, con due clic.
Tecnicamente questo è rischioso per noi, dato che avrai comunque i file del libro o del corso. Ma siamo così fiduciosi nei nostri prodotti e servizi, e nei nostri autori e lettori, che siamo felici di offrire una garanzia di rimborso totale per tutto ciò che vendiamo.
Puoi scoprire quanto è buono qualcosa solo provandolo, e grazie alla nostra garanzia di rimborso del 100% non c'è letteralmente alcun rischio nel farlo!
Quindi, non c'è motivo per non cliccare sul pulsante Aggiungi al Carrello, giusto?
Vedi i termini completi...
Guadagna 8$ su un acquisto di 10$, e 16$ su un acquisto di 20$
Paghiamo royalty dell'80% sugli acquisti di 7,99$ o superiori, e royalty dell'80% meno una commissione fissa di 50 centesimi sugli acquisti tra 0,99$ e 7,98$. Guadagni 8$ su una vendita di 10$, e 16$ su una vendita di 20$. Quindi, se vendiamo 5000 copie non rimborsate del tuo libro a 20$, guadagnerai 80.000$.
(Sì, alcuni autori hanno già guadagnato molto di più su Leanpub.)
Infatti, gli autori hanno guadagnatooltre 14 milioni di dollariscrivendo, pubblicando e vendendo su Leanpub.
Scopri di più sulla scrittura su Leanpub
Aggiornamenti Gratuiti. Senza DRM.
Se acquisti un libro Leanpub, ricevi aggiornamenti gratuiti per tutto il tempo in cui l'autore aggiorna il libro! Molti autori utilizzano Leanpub per pubblicare i loro libri durante il processo di scrittura. Tutti i lettori ricevono aggiornamenti gratuiti, indipendentemente da quando hanno acquistato il libro o quanto hanno pagato (incluso gratis).
La maggior parte dei libri Leanpub è disponibile in PDF (per computer) ed EPUB (per telefoni, tablet e Kindle). I formati inclusi in un libro sono mostrati nell'angolo in alto a destra di questa pagina.
Infine, i libri Leanpub non hanno alcuna assurda protezione DRM, quindi puoi leggerli facilmente su qualsiasi dispositivo supportato.