Solitamente quando scrivo un metodo di test cerco di dargli un nome che sia riassuntivo per il codice che sto andando a testare di modo che un domani quando ci ritornerò per qualsiasi motivo mi basterà leggerne il nome per capire che test viene eseguito al suo interno. Guardando in giro vedo che sul web più o meno questo è quello che fanno tutti gli "adepti" dello unit-test.
Quest'anno al TechEd, Roy Osherove ha suggerito questo pattern per dare un nome ai metodi di test:
NomeMetodo_Condizione_Comportamento
visto che mi sembrava cosa buone e giusta, ho aggiornato il mio template di Resharper "test" così:
[Test]
public void $MethodName$_$Condition$_$Behaviour$()
{
$END$
}
che applicato ad un caso reale diventa: la proprietà DataAvailable, se non ci sono files, deve essere falsa.
[Test]
public void DataAvailable_NoFilesAvailable_IsFalse()
{
using (_mock.Record())
{
//some expectations here
}
using (_mock.Playback())
{
IModel model = new Model(_fileSystem);
Assert.IsFalse(model.DataAvailable);
}
}
Ho notato che anche alcuni colleghi hanno deciso di utilizzare lo stesso template. Spero che il suggerimento sia gradito anche ad altri.