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_length
başarısız olursa, o zaman test_order
da başarısız olur. Yazmak test_length
veya 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 B
aynı 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.