Lavoro per una grande azienda e sono responsabile di una grande applicazione java con migliaia di test junit. Da quando sono passato a questo ruolo, ci sono stati 200-300 test interrotti (probabilmente interrotti per anni). I test sono vecchi e fragili e sono un casino di dipendenze di spaghetti che …
Cominciamo con un esempio. Diciamo che ho un metodo chiamato exportche dipende fortemente dallo schema del DB. E per "dipende fortemente" intendo che so che l'aggiunta di una nuova colonna a una determinata tabella spesso (molto spesso) porta alla exportmodifica del metodo corrispondente (di solito è necessario aggiungere anche il …
Qualche tempo fa ho letto, su una risposta Stack Overflow che non riesco a trovare, una frase che spiegava che dovresti testare le API pubbliche e l'autore ha detto che dovresti testare le interfacce. L'autore ha anche spiegato che se un'implementazione del metodo è cambiata, non è necessario modificare il …
Supponiamo che esista una classe di utilità che fornisce alcuni metodi statici comuni utilizzati ovunque nel codice da molte altre classi. Come progettereste i test unitari per i consumatori dell'utilità in modo che i loro test falliscano se uno qualsiasi dei test di utilità non viene superato? Puoi farlo o …
Ho un'interfaccia chiamata IContext. A tal fine, non importa cosa fa, tranne quanto segue: T GetService<T>(); Quello che fa questo metodo è guardare l'attuale contenitore DI dell'applicazione e tenta di risolvere la dipendenza. Penso che sia abbastanza standard. Nella mia applicazione ASP.NET MVC, il mio costruttore ha questo aspetto. protected …
Ho ereditato un gioco educativo basato sul web. Nell'ultimo anno ho lavorato per stabilizzare il codice e aggiungere nuove funzionalità. La maggior parte della logica è nel front-end, quindi i test delle unità di back-end, sebbene utili, coprono una piccola percentuale del codice. Il gioco è arrivato al punto in …
Dal punto di vista del valore vedo due gruppi di unit test nella mia pratica: Test che testano una logica non banale. Scriverli (prima o dopo l'implementazione) rivela alcuni problemi / potenziali bug e aiuta ad essere sicuri nel caso in cui la logica venga modificata in futuro. Test che …
Ho scritto questa lezione che fa alcune cose (forse questa è una violazione del principio della responsabilità singola). Ora mi rendo conto che un'altra parte del progetto ha bisogno di un pezzo di quella logica e il modo in cui lo esporrò è quello di estrarre una classe dal mio …
Quindi, ho un modulo di autenticazione che ho scritto qualche tempo fa. Ora sto vedendo gli errori sulla mia strada e sto scrivendo test unitari per questo. Mentre scrivo unit test, faccio fatica a trovare buoni nomi e buone aree da testare. Ad esempio, ho cose come RequiresLogin_should_redirect_when_not_logged_in RequiresLogin_should_pass_through_when_logged_in Login_should_work_when_given_proper_credentials …
Sto facendo unit test e in una delle mie classi ho bisogno di inviare una mail da uno dei metodi, quindi usando l'iniezione del costruttore ho iniettato un'istanza di Zend_Mailclasse che si trova nel framework Zend. Ora alcune persone sostengono che se una biblioteca è abbastanza stabile e non cambierà …
In un progetto attuale, i poteri che vogliono avere unit test incorporati nel nostro ciclo di sviluppo per evitare la quantità costante di bug che sembrano penetrare nel nostro codice. Il problema è che il codice spaghetti è procedurale al 95%, con cui non ho mai effettuato test unitari (tutta …
Mentre ci sono modi per impedire l'esecuzione dei test unitari, qual è il valore del controllo in unit test falliti? Userò un semplice esempio: Case sensitive. Il codice corrente fa distinzione tra maiuscole e minuscole. Un input valido nel metodo è "Cat" e restituirebbe un enum di Animal.Cat. Tuttavia, la …
Sto scrivendo test unit JUnit per le mie lezioni. È meglio avere una classe separata per ciascun metodo o avere solo una classe di prova per ogni classe effettiva?
Sto lavorando a un progetto in cui le chiamate interne di classe sono usuali ma i risultati sono molte volte valori semplici. Esempio ( non codice reale ): public boolean findError(Set<Thing1> set1, Set<Thing2> set2) { if (!checkFirstCondition(set1, set2)) { return false; } if (!checkSecondCondition(set1, set2)) { return false; } return …
We use cookies and other tracking technologies to improve your browsing experience on our website,
to show you personalized content and targeted ads, to analyze our website traffic,
and to understand where our visitors are coming from.
By continuing, you consent to our use of cookies and other tracking technologies and
affirm you're at least 16 years old or have consent from a parent or guardian.