Untuk memberikan contoh yang sedikit dibuat-buat, katakanlah saya ingin menguji bahwa suatu fungsi mengembalikan dua angka, dan yang pertama lebih kecil dari yang kedua:
def test_length():
result = my_function()
assert len(result) == 2
def test_order()
a, b = my_function()
assert a < b
Di sini, jika test_lengthgagal, maka test_orderakan gagal juga. Apakah ini praktik terbaik untuk menulis test_length, atau melewatkannya?
EDIT: perhatikan bahwa dalam situasi ini, kedua tes sebagian besar independen satu sama lain, masing-masing dapat dijalankan secara terpisah, atau mereka dapat dijalankan dalam urutan terbalik, ini tidak masalah. Jadi tidak ada satu pun dari pertanyaan-pertanyaan ini sebelumnya
- Bagaimana saya harus menguji fungsionalitas fungsi yang menggunakan fungsi lain di dalamnya?
- Apakah saya perlu tes unit jika saya sudah memiliki tes integrasi?
- Bagaimana menyusun tes di mana satu tes adalah pengaturan tes lain?
- Bagaimana mengelola ketergantungan keberhasilan antara unit test
adalah duplikat dari yang di atas.
Apanggilan Bdan mengembalikan hasil yang sama, haruskah Anda menguji keduanya Adan B". Ini lebih tentang tes yang tumpang tindih daripada fungsi yang diuji. (Meskipun itu membingungkan karena mereka saat ini dinamai).
lambda: type('', (), {'__len__': lambda self: 2})()akan melewati yang pertama, tetapi bukan yang kedua.