Nomi per i metodi di test

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.

posted @ domenica 9 dicembre 2007 16:04

Print

Comments on this entry:

# re: Nomi per i metodi di test

Left by Emanuele DelBono at 09/12/2007 21:35
Gravatar
Qui (http://wundasworld.blogspot.com/2007/06/rose-by-any-other-name.html) trovi un articolo interessante sul naming dei test.

# re: Nomi per i metodi di test

Left by Marco Abis at 10/12/2007 14:06
Gravatar
Io prediligo un approccio alla BDD con i metodi di test che iniziano con "Should". La migliore introduzione e' quella di Dan North qui:

http://dannorth.net/introducing-bdd

anche se il sito sembra down al momento ma sono sicuro che la cache di google funziona ;-)

# re: Nomi per i metodi di test

Left by makka at 11/12/2007 12:47
Gravatar
Sul BDD c'è un interessante screencast
http://www.lostechies.com/blogs/joe_ocampo/archive/2007/11/30/bdd-macro-and-template-usage-screencast.aspx
in cui tra le altre cose si ha un esempio di quale naming convention viene usata per il BDD.
Da provare.
Comments have been closed on this topic.