Tes tautologis kadang-kadang disebut tes yang terlalu dekat hubungannya dengan implementasi yang mendasarinya, secara harfiah mengulanginya langkah demi langkah. Mereka dimarahi secara teratur, dan secara umum, tampaknya, pengembang dapat menghindari dan mengenalinya. Di bawah tekanan dari manajemen, kadang-kadang tes tersebut terjadi surut dalam upaya untuk mengejar ketinggalan dengan cakupan.
Namun, ada beberapa kasus kompleks.
- Kasus pertama adalah tes yang mereproduksi perilaku perpustakaan. Kasus khas adalah klien-http dari beberapa perpustakaan tempat Anda perlu membuat klien, memasukkan cookie, dan header ke dalamnya dan mengirim permintaan. Tidak ada gunanya menguji setiap langkah, mungkin masih ada metode statis, baru dan pembunuh uji-pembunuh lainnya, jadi cara termudah adalah membungkusnya dalam kelas pembungkus tipis. Tes unit tidak diperlukan untuk kelas seperti itu. Anda dapat menguji kelas ini dalam konteks tes dependensi integrasi, yaitu, kami menyebutnya bertentangan dengan layanan nyata dan memastikan bahwa perpustakaan berfungsi seperti yang diharapkan. Penting bahwa kelas pembungkus tidak mengandung logika tambahan yang dapat diuji sebagai bagian dari pengujian unit.
- Kasus kedua adalah tes yang memeriksa sesuatu yang tidak mengembalikan hasil (atau mengembalikan cadel), masing-masing, satu-satunya cara untuk memeriksa bahwa sesuatu dipanggil adalah Spy dengan penghitung. Ini adalah kasus yang valid, meskipun terbatas. Ini mungkin termasuk prosedur tersimpan yang disimpan, mengirim email.
- Kasus ketiga adalah tes strategi, kebijakan, dan pola perilaku lainnya. Sebagai contoh, ketika kita membuat pesanan, kita ingin mendapatkan entri dalam database, kemudian dia mendapatkan di baris pesanan, dan kemudian ada sesuatu yang ditulis ke log dan email.
Penting untuk memahami bahwa pengujian kami dalam kasus ini adalah spesifikasi dari aturan, perilaku. Yaitu, ia mengatur agar komponen ditarik, bukan karena ia mengikutinya, tetapi karena ia mengikutinya. Dalam pengertian ini, adalah logis untuk menulisnya secara lebih abstrak: misalnya, jika Anda perlu memanggil beberapa layanan - tetap, secara paralel atau berurutan, maka tes harus menggambarkan hal itu. Jika tes dilemparkan oleh benda, maka ia mungkin tidak harus menyodok hidungnya ke bidang objek ini. Oleh karena itu, pengujian kami mungkin terlihat hampir seperti implementasi, atau sebagai implementasi paling sederhana dan paling naif dari beberapa perilaku, tetapi pada saat yang sama mengetahui ukurannya secara rinci dan tidak menjadi tautologi.
Namun, terkadang kasus-kasus ini saling mengalir. Yaitu kami mungkin memiliki beberapa panggilan ke perpustakaan lama yang tidak benar-benar mengembalikan apa pun, atau bertukar dengan apa, agar, tidak diketahui oleh seseorang yang telah didirikan, dan tidak terlalu jelas siapa yang "mengatur" perilaku kepada siapa. Mengujinya seperti menjelaskan rute ke sopir bus, jadi yang terbaik adalah mengikuti skenario pertama.