Una domanda posta molte volte prima ma con uno sviluppo specifico del mvc di slant twds.
Sono stato un bravo ragazzo e ho codificato tutte le azioni del mio controller con corrispondenti test unitari che sono stati fantastici (se un po '[leggi un LOT] ripetitivo a volte). Per essere onesti, in realtà ho creato un piccolo modello T4 per scrivere la maggior parte delle ossa nude dei test di unità intiali e poi ottimizzato come appropriato per l'utilizzo. Devo ammettere di non essere abbastanza sicuro su come gestire i test nelle viste che contengono partialviews - ma questa è una storia per un'altra domanda.
Ora, la parte più difficile per me da decidere è la profondità della copertura nel mio livello di servizio. Il motivo è che alcuni dei miei metodi di servizio (nel bene o nel male) eseguono effettivamente una varietà di query linq che forniscono informazioni discrete alla logica successiva all'interno del metodo. So che potrei (dovrei ??) rompere questi metodi verso il basso per chiamare solo la logica richiesta per ogni istruzione linq e quindi applicarli all'interno del metodo. Tuttavia, in molti casi, non c'è mai alcun riutilizzo delle "funzioni" di linq e quindi si ritiene che questo ridicherebbe il codice a un livello troppo alto.
Quello che sto chiedendo è, con logica complessa che si verifica all'interno di un metodo, è 'abbastanza buono' avere un metodo di test che asserisca semplicemente il risultato richiesto e / o l'errore previsto, o ogni linea logica dovrebbe essere simultanea e testata pure. per come la vedo io, per fare il test correttamente, quindi la logica del metodo (riga per riga) dovrebbe avere anche una sorta di copertura. Ciò tuttavia (secondo la mia ingenua opinione) potrebbe portare a un ciclo infinito di tentativi di mantenere il test e il metodo implementato così strettamente allineato (che so che dovrebbero essere) per creare un'industria di cottage nei test stessi.
So che la mia domanda potrebbe offendere alcuni dei devoti del TDD che vedranno questo come un gioco da ragazzi. Non essendo nel campo TDD, questo è un 'sì di buon senso' per me, da qui la domanda.
btw - aveva controllato per idee:
guarda ora i downvotes costanti:)
[modifica] - a beneficio del singolo (ben al momento single !!) elettore "vicino". questa domanda è non soggettiva. Sto cercando il consenso su un argomento molto focalizzato. Non sto cercando di suscitare passioni negative, non sto cercando di mettere in luce difetti nella tecnologia - sono un fan enorme. Quindi, per favore, invia un cortese commento per il mio beneficio se voto per chiudere in quanto potrebbe aiutarmi a ristrutturare la domanda se c'è ambiguità o disinformazione. questa domanda potrebbe beneficiare di una grossa fetta della popolazione di mvc.
grazie !!
jim