Attualmente non eseguiamo molti test presso la nostra azienda, ad eccezione di alcuni controlli manuali. Occasionalmente creiamo alcuni test unitari, test di integrazione e test dell'interfaccia utente, ma non su base regolare. Da quando è in corso un nuovo progetto, voglio cogliere l'opportunità per implementare un modo migliore di testare.
Domanda
Dal momento che la maggior parte delle nostre applicazioni Web esegue effettivamente applicazioni di base, molti test sembrano essere banali. E la mia domanda è fondamentalmente, come posso decidere dove disegnare la linea, c'è un approccio per questo. I test unitari di alto livello migliorano la qualità, hanno un costo (sotto forma di scrittura e mantenimento). Per essere concreti, ecco alcuni esempi.
Esempio
Ho un productService con il seguente metodo:
public Product GetProduct(int productId)
{
return database.GetObject<Product>("select * FROM products wh..",productId)
}
Devo creare un test unitario per questo metodo? Diciamo che lo farei, che sto solo controllando se sto chiamando la query giusta e se sto inoltrando correttamente il parametro productId al livello del database. Questo sembra già un po 'banale. Ma per peggiorare le cose, sto già pensando di creare un test di integrazione per questo metodo per verificare se tutto funziona correttamente insieme, quindi questo test unitario non aggiungerà alcun valore. Ma se seguissi TDD (che è morto, in parte per questo motivo, come ho sentito), allora dovrei creare quel test unitario.
Qualche idea?