Tieni i test unitari comuni in una libreria separata o duplicata?

2

A volte, es. quando si usano i comuni mock (lo stesso per il livello di accesso ai dati come per la presentazione, io uso spesso xunit ClassData), arrivo al momento in cui copio il codice comune nella libreria di test delle nuove unità o creo il progetto "UnitTestsCommon".

Non riesco a trovare una risposta definitiva quale sia la migliore, anche se tendo a duplicare nel nome della semplicità e delle dipendenze limitanti. C'è una risposta definitiva a questo e se sì, che cos'è?

    
posta Piotr Falkowski 11.03.2018 - 11:29
fonte

1 risposta

3

È meglio tenere insieme i test in un progetto correlato al progetto che stai testando.

MyProject
MyProject.Tests
MyLibrary
MyLibrary.Tests

Ovviamente la duplicazione del codice è una cosa negativa. Ma penso che sia un brutto segno che hai bisogno di duplicare il codice. Non vuoi collegare questi due progetti di test in quanto entrambi dovrebbero rovinarsi in modo indipendente e limitarsi a testare il loro progetto.

Supponiamo che entrambi i progetti utilizzino la stessa dipendenza, quindi entrambi i test devono prendere in giro questa dipendenza.

Potresti essere tentato di mettere quell'impostazione di simulazione in una libreria comune. Ma lo considererei un odore di codice. Entrambi i test richiedono davvero la stessa configurazione? sicuramente stiamo testando un comportamento diverso.

Tuttavia, potresti avere una versione in memoria della dipendenza che usi per il mocking. Ovviamente andrebbe nella sua libreria. che potrebbe essere condiviso e utilizzato come simulazione in entrambi i progetti di test.

Il pensiero è che la versione in-memory è una cosa reale di per sé e la logica di installazione su misura sarebbe ancora contenuta in ogni progetto di test.

    
risposta data 11.03.2018 - 17:04
fonte

Leggi altre domande sui tag