Che tipo di test è un "controllo di coerenza"?

1

Alcuni o tutti i test che scrivo ed eseguo sono controlli per coerenza, ad es. asserire che se creo un nuovo account utente, l'account che è stato creato in realtà ha lo stesso nome del nome che è stato inviato nella registrazione. E ora, per verificare di aver implementato correttamente l'impaginazione, suppongo di poter controllare che per ogni grande set di risultati, ottenere la "pagina successiva", a volte ripetuti e non solo una volta, porti alla fine alla stessa pagina dell'ultimo pagina direttamente (che viene eseguita in un altro modo rispetto a passare da una pagina alla volta, passando direttamente all'ultima pagina in ordine utilizzando l'ordine inverso e ottenendo la prima pagina dall'ordine invertito.

Nei nostri progetti cerchiamo di seguire lo sviluppo basato sui test, ma a volte penso che non sia esatto se un test è un test unitario o un test di integrazione quando in realtà sia i test di integrazione sia i test unitari sono per lo più o "costanti" controlli". Non ho visto nessun altro tipo di test rispetto alla coerenza (sia i test unitari che i test di integrazione fanno asserzioni), ma sembra che il mocking sia usato più nei test di integrazione che nei test unitari e che un test unitario sia più piccolo e un singolo componente o metodo mentre un test di integrazione è "più grande", ma non è ancora una differenza esatta.

Quindi che tipo di test è un controllo di coerenza? È un test unitario o un test di integrazione?

    
posta Niklas Rosencrantz 17.02.2014 - 10:17
fonte

1 risposta

3

Non so se il "controllo di coerenza" sia il nome appropriato per il tipo di test che descrivi, in realtà quello che descrivi è semplicemente un test.

Indipendentemente dal fatto che si tratti o meno di un test unitario o di un test di integrazione, si tratta in realtà di una funzione dello stato / dipendenze che il metodo in prova ha e in che modo vengono gestiti tali dipendenze / stati.

Con il tuo esempio, se il tuo metodo in prova chiama in qualche servizio e fai finta o falsi il servizio che sta usando, allora è più probabile che tu scriva un test unitario. Se stai utilizzando un'implementazione legittima del servizio, allora è un test di integrazione.

Allo stesso modo, se esiste un qualche tipo di stato globale o esterno a cui si riferisce il metodo in esame e si prende in giro / si finge, allora si sta ancora scrivendo un test unitario.

È facile pensare alla differenziazione nel contesto della copertura del codice. Se il test copre solo le righe nel metodo sotto test e il codice di test, allora si tratta di un test unitario. Se copre altro codice, è un test di integrazione (o un test di unità scritto in modo errato).

    
risposta data 17.02.2014 - 22:02
fonte

Leggi altre domande sui tag