Nisam kompetentan da govorim za frontend, ali iz ugla bekenda, mogu biti vrlo zgodni. Na poslu mi niko ne traži eksplicitno da ih pišem, ali su ipak neki kritični delovi koda pokriveni jediničnim testovima.
Ja ih lično pišem kad god osetim potrebu, tj. kad je u pitanju neki od bitnijih modula sa složenom logikom. Što veća pokrivenost testovima, opuštenije možeš da pristupiš refaktorisanju koda. Programerima je često pain in the ass kad vide da bi bilo poželjno da se neki kod refaktoriše, a znaju da time mogu da uvedu ozbiljne bagove ako se ne isproverava sve dobro, pa onda sve ostane samo na toj želji, i kompleksnost koda samo raste i raste.
Sami jedinični testovi su vid specifikacije, kako je očekivano da se nešto ponaša. Ako menjaš kod, testovi i dalje treba da budu u skladu sa specifikacijom, osim ako sama specifikacija nije promenjena, gde je potrebno da ažuriraš i same testove (ne samo za izmene specifikacije, moraćeš da ih ažuriraš i ako prilikom refaktorisanja promeniš interfejs, zato je dobro da interfejsi budu što stabilniji, mada je i njihova izmena nekad neizbežna). Ukratko, vrlo brzo dobiješ feedback da li je ono što si napisao ili modifikovao validno, inače bi ti trebao neki code review
Mislim da je definitivno jedna od značajnijih veština pedantnih programera. Zahtevaju malo više dodatnog posla, ali kasnije višestruko mogu da se isplate.
A ima i nekog zadovoljstva u tome kad prvo napišeš unit testove, i onda deo po deo koda pišeš i omogućuješ testovima da prolaze, tj. da budu uspešni
