Test etmeden kod yazmayacağınız sürece, her zaman test maliyetine tabi olacaksınız.
Birim testine sahip olmak ve bunlara sahip olmamak arasındaki fark, testin yazma maliyeti ile testin maliyetini elle yapılan testin maliyeti arasındaki farktır.
Bir birim testinin yazılmasının maliyeti 2 dakika ise ve birim testinin çalıştırılmasının maliyeti pratik olarak 0 ise, ancak kodu manuel olarak test etmenin maliyeti 1 dakikaysa, testi iki kez çalıştırdığınızda bile kırılırsınız.
Uzun yıllar boyunca, kodum için birim testleri yazmak için yeterli zamanım olmadığından yanlış anlaşıldım. Testler yazarken, şişirilmişlerdi, beni ancak ihtiyaç duyduğumu bildiğimde sadece birim testleri yazmam gerektiğini düşünmem için cesaretlendiren ağır şeylerdi .
Son zamanlarda Test Odaklı Geliştirme'yi kullanmaya teşvik edildim ve tam bir vahiy buldum. Şimdi, kesin olarak birim testleri yazmamaya vaktim olmadığına ikna oldum .
Tecrübelerime göre, akılda tutularak test geliştirerek daha temiz arayüzler, daha çok odaklanmış sınıflar ve modüller ve genellikle daha fazla SOLID , test edilebilir kod ile karşılaşırsınız.
Her ne zaman birim testi olmayan eski kodla çalıştığımda ve bir şeyi manuel olarak test etmek zorunda kaldığımda, "bu kod zaten birim testleri olsaydı daha hızlı olacağını" düşünüyorum. Her ne zaman yüksek kuplajlı koda ünite testi işlevini denemek ve eklemek zorunda kalsam, "bunun çift bağlı bir şekilde yazılmış olsaydı daha kolay olacağını" düşünüyorum.
TL; DR versiyonu:
Testi yazmanın maliyeti ile birlikte, ihtiyacınız olduğu kadar çok çalıştırmanın maliyeti, gerektiğinde manuel olarak test etmenin maliyetinden daha düşük olacağında bir test yazın.
TDD kullanıyorsanız, yazma testlerinin maliyetinin daha iyi olduğunuz için düşmesi muhtemel olduğunu ve kod kesinlikle önemsiz olmadığı sürece, muhtemelen testlerinizi beklediğinizden daha sık kullanacağınızı unutmayın.