Sto lavorando a un componente standard che dovrebbe generare una sorta di struttura di progetto "come iniziare". Pensa, in un contesto di app web, a un componente che genererà un controller, una vista e la configurazione dei percorsi in modo che, una volta chiamato, puoi andare immediatamente al browser, digitare il percorso e ottenere l'output .
In questa norma, una delle mie classi ha la responsabilità di fornire il contenuto di ogni file che genera (il contenuto del file del controller, il contenuto del file di rotte, il contenuto del view fie, ecc.)
Con una tale responsabilità, un metodo dovrebbe restituire il contenuto foo
, il test dovrebbe verificare che, in effetti, viene restituito "pippo".
Finisce in questo modo:
// SUT
function getFooFileContent() {
return 'foo';
}
// test
function testGetFooFileContent() {
string expected = 'foo';
string result = sut.getFooFileContent();
assertEquals(expected, result);
}
Le persone a cui sto spiegando il motivo di questo test sono nuove per i test unitari, quindi è normale che non capiscano a prima vista perché è OK, e dubitano che questo test abbia effettivamente un valore per cominciare.
Dato che sono incaricato di introdurre i test di unità per il mio team, voglio spiegarlo con risorse che spiegano questo "tipo" di test in particolare, in modo da avere una discussione solida piuttosto che chiedere loro di accetta quel tipo di test.
PS: Per la cronaca, quando ho iniziato con i test unitari (autodidatta, nessun mentore purtroppo), avevo lo stesso dubbio. Nel mio caso ho appena accettato il test e ho capito il suo valore nel corso degli anni, quando ho potuto finalmente vedere il fatto che i test dovrebbero legare la funzionalità alle specifiche. È difficile vederlo quando stai iniziando.
Aggiornamento 1:
A causa della mia domanda contrassegnata come duplicata per il comune dovrei testare un getter / setter? dico:
Questo non è davvero un getter e la domanda non riguarda se ne valga la pena o meno. La specifica della classe è di fornire un modello di testo per un piano d'appoggio. L'implementazione potrebbe benissimo evolvere nel leggere il testo da un file non * .php e, in tal caso, un test avrebbe valore in quanto assocerebbe le specifiche alla funzionalità.
La domanda è come spiegare il fatto che, anche con l'implementazione corrente (quella che sta appena restituendo un blocco di stringa) il test stesso è corretto. Sto specificatamente chiedendo risorse per il backup di quell'argomento.