Bağlam:
Şu anda Python'da küçük bir proje üzerinde çalışıyorum. Ben sık belgelenmiştir bazı kamu yöntemlerle derslerimi yapısı ama esas üst düzey kavramları (sınıfın bir kullanıcı tanımak ve kullanmak gerektiğini) ve bir grup ile anlaşma gizli sorumlu olan yöntemler (alt çizgi ile başlayan) karmaşık veya düşük seviyeli işleme.
Kodlara güven vermek ve daha sonra yapılacak herhangi bir değişikliğin önceki davranışı bozmadığından emin olmak için testlerin gerekli olduğunu biliyorum.
Sorun:
Üst düzey genel yöntemleri güvenilir bir temelde oluşturmak için genellikle özel yöntemleri test ederim. Bir kod değişikliği regresyonlar ve nerede tanıttı olup olmadığını bulmak daha kolay buluyorum. Bu, dahili testlerin küçük revizyonları ihlal edebileceği ve düzeltilmesi / değiştirilmesi gerektiği anlamına gelir
Ancak, birim test özel yönteminin en azından tartışmalı bir kavram olduğunu veya daha sıklıkla kötü uygulama olarak kabul edildiğini de biliyorum. Nedeni: sadece kamu davranışları test edilmelidir ( ref. )
Soru:
En iyi uygulamaları takip etmeye önem veriyorum ve anlamak istiyorum:
- Özel / gizli yöntemlerde birim testleri kullanmak neden kötüdür (risk nedir)?
- genel yöntemler düşük seviye ve / veya karmaşık işlemeyi kullanabiliyorsa en iyi uygulamalar nelerdir?
Precisions:
- bu nasıl sorgulanacağı değil. Python'un gerçek gizlilik kavramı yoktur ve gizli yöntemler basit bir şekilde listelenmez, ancak adlarını bildiğinizde kullanılabilir
- Bana hiç programlama kuralları ve kalıpları öğretilmiyordu: son derslerim 80'li yıllardan ... Temelde deneme-yanılma ve internette referanslarla dil öğrendim (Stack Exchange yıllardır benim favorim)