Test unitari per lo sviluppo di plugin


17

Devo applicare il test unitario per uno dei miei plugin. Di recente l'ho riprogettato in classi, quindi ora i test unitari dovrebbero essere più facili da applicare.

Quali sono alcune strategie efficaci per testare l'unità del mio plugin? Ho bisogno di un modo per usare le funzioni di WordPress utilizzate nel plugin, ma non dovrei avere bisogno di un sito WordPress in esecuzione (basta testare i dati sul DB AFAIK), giusto?

Ho difficoltà a capire come testare semplicemente il plugin e non il plugin nel contesto del sito. Potrei usare Selenium per questo, ma in questo momento voglio solo concentrarmi sull'unità testare la funzionalità delle classi di plugin, in modo da non romperle con ogni aggiornamento.

Risposte:


14

Come ex ingegnere informatico che costruisce tipi di aziende di grandi dimensioni che sono sbarcati in un'agenzia interattiva, lascia che ti dia alcune considerazioni sui test durante lo sviluppo per Wordpress:

  1. Il tuo test unitario dovrebbe testare la minima quantità di comportamento che una classe può eseguire. Ogni classe dovrebbe essere in grado di essere testata indipendentemente da Wordpress. Se hai una dipendenza Wordpress, considera la possibilità di creare oggetti e / o metodi finti nel tuo test per aggirare il problema. Alla fine, questo cambierà un po 'il modo in cui scrivi il tuo codice, ma sarà molto più testabile. Come al solito nessun pranzo gratuito.

  2. Quando arrivi al livello di test funzionali, è qui che puoi testare il tuo codice con le dipendenze di Wordpress. Qui è dove verifichi che il tuo plugin effettivamente esegue un servizio che dovrebbe.

  3. A seconda di ciò che fa il tuo plugin, considera l'utilizzo di test basati sul selenio che verificano la presenza di dati nel DOM usando gli ID. È ragionevolmente robusto ed è molto meno probabile che si rompa da una versione all'altra. Ancora una volta, il trucco qui è pensare ai test come parte del ciclo di vita dello sviluppo del software. Grandi cambiamenti nel codice si ridurranno a grandi cambiamenti nei test. Tutto parte del costo per fare affari.

Se hai bisogno di assistenza con uno qualsiasi degli strumenti per raggiungere questo obiettivo, sarei felice di rispondere se apri una nuova domanda. Uso il lavoro di PHPUnit e la sua estensione al selenio.


1
Ehi Ethan, grazie per una risposta così professionale. Non potevo aspettarmi di meno da questa community :) Proverò a scrivere Unit Test per le mie lezioni e creerò alcuni oggetti finti per aggirare le funzioni di WordPress. Il passaggio 2 è la vera parte difficile per me, dal momento che avrò bisogno di una installazione di WordPress per una sorta di test automatico, in cui potrei iniziare a utilizzare Selenium in seguito. Inizierò con PHPUnit e vedrò come va. Grazie!
Fernando Briano,

Risposta perfetta!
rsman,


-1

Di recente ho creato un tutorial che prende le informazioni dal mio googling, per mostrare come:

  1. Usa il core di wordpress per effettuare unit test
  2. Nascondi gli avvisi php deprecati / inviati dalla sessione
  3. Mostra come impostare le opzioni del plug-in nei test
  4. Usa lo stesso core wp per effettuare unit test per testare più plugin

Il tutorial è qui , spero che sia di aiuto

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.