Una domanda posta molte volte prima ma con uno sviluppo inclinato specifico di mvc.
Sono stato un bravissimo ragazzo e ho codificato tutte le azioni del mio controller con corrispondenti test di unità che è stato grandioso (se un po '[leggi un sacco] ripetitivo a volte). Ad essere sincero, in realtà ho creato un piccolo modello T4 per scrivere la maggior parte delle ossa nude dei test delle unità iniziali e quindi ottimizzato in base all'utilizzo. Devo ammettere di non essere del tutto sicuro di come gestire i test in viste che contengono viste parziali - ma questa è una storia per un'altra domanda.
Ora, la parte difficile per me da decidere è quanto profonda dovrebbe essere la 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 quindi informazioni discrete alla logica successiva all'interno del metodo. So che potrei (dovrei ??) abbattere questi metodi per chiamare solo la logica richiesta per ogni istruzione linq e quindi applicarli all'interno del metodo. Tuttavia, in molti casi, non vi è mai alcun riutilizzo delle "funzioni" di linq e pertanto si ritiene che ciò porterebbe il refactoring del codice a un livello troppo elevato.
Quello che sto chiedendo è, con la logica complessa che si verifica all'interno di un metodo, è 'abbastanza buono' avere un metodo di prova che asserisce semplicemente il risultato richiesto e / o l'errore previsto, o dovrebbe anche essere simultanea e testata ogni linea logica. per come la vedo io, per fare correttamente i test, allora anche la logica del metodo (riga per riga) dovrebbe ottenere una sorta di copertura. Che comunque (secondo la mia ingenua opinione) potrebbe portare a un ciclo infinito di tentativi di mantenere il test e il metodo implementato così strettamente allineati (che so che dovrebbero essere) da creare un settore cottage nei test stessi.
So che la mia domanda potrebbe offendere alcuni dei devoti TDD che vedranno questo come un gioco da ragazzi. Non essendo nel campo TDD, questo è un "sì" per me, da qui la domanda.
btw - aveva verificato questo per idee:
guardando avanti ai fermi voti adesso :)
[modifica] - a beneficio del singolo (beh al momento singolo !!) 'chiudi' elettore. questa domanda non è soggettiva. Sto cercando un consenso su un argomento molto focalizzato. Non sto provando a suscitare passioni negative, non sto cercando di esporre difetti nella tecnologia - sono un ENORME fan. Quindi, per favore, lascia un commento educato a mio vantaggio se votare per chiudere in quanto potrebbe aiutarmi a ristrutturare la domanda se c'è ambiguità o disinformazione. questa domanda potrebbe giovare a una grande fetta della popolazione di mvc.
grazie!!
jim