Kod üzerinde çalışan tek programcı olduğunuzda, özellikle uygulama çok büyük veya çok karmaşıksa, birim testinin bir değeri vardır. Birim sınamanın önemli olduğu yerler, aynı kod tabanında çalışan çok sayıda programcıya sahip olduğunuz zamandır. Bu daha büyük ekiplerde çalışmanın bazı zorluklarına yönelik olarak birim testi kavramı tanıtıldı.
Birim testlerinin daha büyük ekiplere yardımcı olmasının nedeni tamamen sözleşmelerle ilgilidir. Kodum başkası tarafından yazılan koda çağrı yapıyorsa, diğer kişinin kodunun çeşitli durumlarda ne yapacağına dair varsayımlar yapıyorum. Bu varsayımların hala doğru olması şartıyla, kodum yine de çalışır, ancak geçerli olan varsayımları ve bu varsayımların ne zaman değiştiğini nasıl bilebilirim?
Burada birim testleri devreye girer. Bir sınıfın yazarı, sınıflarının beklenen davranışlarını belgelemek için birim testleri oluşturur. Birim testi, sınıfı kullanmanın tüm geçerli yollarını tanımlar ve birim testini çalıştırmak bu kullanım durumlarının beklendiği gibi çalıştığını doğrular. Sınıfınızdan yararlanmak isteyen başka bir programcı, sınıfınız için bekleyebilecekleri davranışı anlamak için birim testlerinizi okuyabilir ve bunu sınıfınızın nasıl çalıştığı ile ilgili varsayımları için bir temel olarak kullanabilir.
Bu şekilde, sınıfın genel yöntem imzaları ve birim testleri birlikte, sınıf yazarı ile kodunda bu sınıfı kullanan diğer programcılar arasında bir sözleşme oluşturur.
Bu senaryoda, özel yöntemlerin sınanmasını dahil ederseniz ne olur? Açıkçası bu hiç mantıklı değil.
Kodunuz üzerinde çalışan tek programcıysanız ve kodunuzu hata ayıklamanın bir yolu olarak birim testini kullanmak istiyorsanız, o zaman herhangi bir zarar görmüyorum, bu sadece bir araç ve bunun için çalışan herhangi bir şekilde kullanabilirsiniz ancak birim testin başlatılmasının nedeni bu değildi ve birim testin en önemli faydalarını sağlamaz.