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_length
gagal, maka test_order
akan 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.
A
panggilan B
dan mengembalikan hasil yang sama, haruskah Anda menguji keduanya A
dan 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.