Che aspetto hanno i test ben scritti e leggibili? [chiuso]

2

Facendo test delle unità per la prima volta su larga scala, mi ritrovo a scrivere un sacco di test unitari ripetitivi per la mia logica aziendale. Certo, per creare suite di test complete ho bisogno di testare tutte le possibilità, ma la leggibilità si sente compromessa nel fare ciò che faccio - come mostrato nello psuedocode qui sotto.

Come sarebbe una tuta di test ben scritta e leggibile?

describe "UserEntity" ->
  it "valid name validates"
    ...
  it "invalid name doesnt validate"
    ...

  it "valid list of followers validate"
    ..
    
posta Industrial 16.10.2012 - 09:26
fonte

3 risposte

4

In generale, una suite di test ben scritta contiene inevitabilmente alcune ripetizioni, poiché testate sempre lo stesso metodo con parametri e risultati diversi. Ma se hai pezzi significativi di codice di prova duplicato, puoi migliorarlo tramite il refactoring. Estrai parti di codice ripetute in metodi separati che puoi riutilizzare.

Per un trattamento più dettagliato, consulta Software orientato agli oggetti in crescita guidato da test . Contiene molti suggerimenti ed esempi pratici su come rendere il codice di prova più conciso, scorrevole e leggibile.

    
risposta data 16.10.2012 - 10:18
fonte
2

Mi piace davvero il AAA modello.

// Arrange
arrange needed mocks, stubs, parameters, whatever

// Act 
test

// Assert
validate test
    
risposta data 16.10.2012 - 10:28
fonte
0

ai miei occhi un buon test assomiglia a:

/*
description of what is tested (include mentions of whether it's general case, edge case, exceptional case)

include references to any relevant bug reports
*/
void testSomthing(){
    prepare mocked behavior (if any)

    set the input for the method

    set expected_output from the test

    gotten_output=do call to tested method

    assertEquals(gotten_output, expected_output);
}

ripetere per ogni test

senza la documentazione non saprai quale delle 2 dozzine di test su un metodo testare cosa

    
risposta data 16.10.2012 - 10:26
fonte

Leggi altre domande sui tag