Moderatör Not: Burada zaten 39 cevap gönderildi (bazıları silindi). Eğer göndermeden önce senin cevabını, tartışmanın anlamlı bir şey eklemek mümkün olup olmadığını düşünün. Muhtemelen başka birinin söylediklerini tekrar ediyorsunuz.
Bazen kendimi sadece bazı birim testleri yazmak için bir sınıfta özel bir yöntem yapmaya ihtiyaç duyuyorum.
Genellikle bu yöntem sınıftaki diğer yöntemler arasında paylaşılan mantık içerdiğinden ve mantığı kendi kendine test etmek için daha düzenli olduğundan veya senkronize dişlerde kullanılan mantığı diş açma problemleri hakkında endişelenmeden test etmek isteyebileceğimden dolayı olabilir. .
Diğer insanlar bunu yaparken buluyorlar mı, çünkü gerçekten yapmaktan hoşlanmıyorum ?? Şahsen ikramiyelerin, sınıf dışında gerçekten herhangi bir hizmet sağlamayan bir yöntemi halka açık hale getirme sorunlarından daha ağır bastığını düşünüyorum ...
GÜNCELLEME
Herkese cevaplar için teşekkürler, insanların ilgisini çekmiş gibi görünüyor. Bence genel fikir birliği, bir sınıfın kullanılabileceği tek yol olduğu için testin genel API aracılığıyla yapılması gerektiğini düşünüyorum ve bunu kabul ediyorum. Yukarıda bunu yapacağım yukarıda bahsettiğim birkaç vaka nadirdi ve bunu yapmanın yararlarının buna değdiğini düşündüm.
Ancak herkesin bunun gerçekten olmaması gerektiğini gösterdiğini görebiliyorum. Ve biraz daha düşündüğümde, testlere uyum sağlamak için kodunuzu değiştirmenin kötü bir fikir olduğunu düşünüyorum - sonuçta testin bir şekilde bir destek aracı olduğunu ve eğer isterseniz bir destek aracını destekleyecek bir sistemi değiştirmenin açık olduğunu düşünüyorum. kötü uygulama.
@VisibileForTesting
bu tür yöntemleri yapmak için bir açıklama bile sağlar - bunu, yöntemin olmamasının nedeni private
belgelenecek şekilde yapmanızı öneririm .