Biraz anlaşılmış bir örnek vermek için, bir işlevin iki sayı döndürdüğünü ve ilkinin ikincisinden daha küçük olduğunu test etmek istediğimizi varsayalım:
def test_length():
result = my_function()
assert len(result) == 2
def test_order()
a, b = my_function()
assert a < b
Burada, test_lengthbaşarısız olursa, o zaman test_orderda başarısız olur. Yazmak test_lengthveya atlamak en iyi yöntem mi?
EDIT: Bu durumda, her iki testin çoğunlukla birbirinden bağımsız olduğunu, her birinin ayrı ayrı çalıştırılabileceğini veya ters sırada çalıştırılabileceğini unutmayın, bu önemli değil. Yani bu önceki soruların hiçbiri
- İçindeki diğer işlevleri kullanan bir işlevin işlevselliğini nasıl test etmeliyim?
- Entegrasyon testim varsa birim testine ihtiyacım var mı?
- Bir testin başka bir testin kurulduğu yerde testler nasıl yapılandırılır?
- Birim testleri arasındaki başarı bağımlılığı nasıl yönetilir
yukarıdaki kodun bir kopyasıdır.
Açağrıların Baynı sonucu döndürdüğü işlevleriniz varsa , her ikisini de test edersenizA ve B". Bu, test edilen fonksiyon (lar) dan ziyade testlerin örtüşmesidir. (Şu anda adlandırıldıkları gibi kafa karıştırıcı olsa da).
lambda: type('', (), {'__len__': lambda self: 2})() birincisini geçecek, ikincisini geçmeyecektir.