Descrizioni test / nome, dì qual è il test? o cosa significa quando fallisce? [chiuso]

7

I documenti API per Test::More::ok è

ok($got eq $expected, $test_name);

al momento in una delle mie app ho $test_name stampa ciò che il test sta testando. Ad esempio, in uno dei miei test l'ho impostato su 'filename exists' . Quello che ho capito dopo che ho ricevuto un bug report di recente, e mi sono reso conto che l'unica volta in cui vedo questo messaggio è quando il test sta fallendo, se il test ha esito negativo significa che il file non esiste.

Secondo te, pensi che questi $test_name dovrebbero dire cosa significa il test se ha successo? cosa significa se ha fallito? o pensi che dovrebbe dire qualcos'altro? per favore spieghi perché?

    
posta xenoterracide 04.01.2011 - 16:25
fonte

2 risposte

3

Provo a nominare i miei test dopo il caso di successo (sintassi C # di seguito).

[TestMethod]
public void BeginReviewPopulatesReviewer()
{
    Distribution = TestData.SubmittedToReviewerDistribution();
    Distribution.BeginReview(TestData.Marcie);
    Assert.IsNotNull(Distribution.CheckWire.Reviewer);
}

Se devo inserire un messaggio specifico sulla console, inserisco la descrizione dell'errore:

Assert.IsNotNull(Distribution.CheckWire.Reviewer, "Reviewer is null.");
    
risposta data 04.01.2011 - 16:59
fonte
2

Seguendo le linee guida di Roy Osherove, utilizzo la convenzione di denominazione in tre parti Method_Setup_ExpectedOutcome. Ciò significherebbe che il nome del test dice cosa mi aspetto che un certo metodo si comporti come sotto determinati risultati, cioè il risultato positivo del test.

Tuttavia, molti framework di testing unitario ti permettono di aggiungere ulteriori messaggi a un'affermazione. Questo messaggio verrà solitamente visualizzato quando l'asserzione fallisce. In questo caso, provo a scrivere il messaggio per riflettere su ciò che ha reso fallace questa asserzione specifica.

Quindi ... per i nomi dei test vado per il caso di successo, nei messaggi vado per il motivo del fallimento.

    
risposta data 04.01.2011 - 18:14
fonte

Leggi altre domande sui tag