Saya perlu berperan sebagai penasihat setan dalam pertanyaan ini sedikit karena saya tidak dapat mempertahankannya dengan baik karena kurangnya pengalaman. Inilah kesepakatannya, saya mendapatkan perbedaan konsep antara pengujian unit dan pengujian integrasi. Ketika secara khusus berfokus pada metode kegigihan dan repositori, unit test akan menggunakan tiruan yang mungkin melalui kerangka kerja seperti Moq untuk menegaskan bahwa mengatakan perintah yang dicari dikembalikan seperti yang diharapkan.
Katakanlah saya telah membangun unit test berikut:
[TestMethod]
public void GetOrderByIDTest()
{
//Uses Moq for dependency for getting order to make sure
//ID I set up in 'Arrange' is same one returned to test in 'Assertion'
}
Jadi jika saya mengatur OrderIdExpected = 5
dan objek tiruan saya kembali 5
sebagai ID pengujian saya akan berlalu. Saya mengerti. Saya unit menguji kode untuk memastikan apa yang saya preforms kode mengembalikan objek dan ID yang diharapkan dan bukan sesuatu yang lain.
Argumen yang akan saya dapatkan adalah ini:
"Mengapa tidak lewati saja tes unit dan lakukan tes integrasi? Ini menguji prosedur yang tersimpan di basis data dan kode Anda bersama-sama itu penting. Sepertinya terlalu banyak pekerjaan ekstra untuk memiliki tes unit dan tes integrasi ketika pada akhirnya saya ingin tahu apakah database memanggil dan kodenya berfungsi. Saya tahu tesnya lebih lama, tetapi harus dijalankan dan diuji, jadi sepertinya tidak ada gunanya bagi saya untuk memiliki keduanya. Cukup uji terhadap yang penting. "
Saya dapat mempertahankannya dengan definisi buku teks seperti: "Ya, itu adalah tes integrasi dan kita perlu menguji kode secara terpisah sebagai tes unit dan, yada, yada, yada ..." Ini adalah kasus di mana penjelasan yang murni tentang praktik vs kenyataan kalah. Saya kadang-kadang mengalami hal ini dan jika saya tidak dapat mempertahankan alasan di balik kode pengujian unit yang pada akhirnya bergantung pada dependensi eksternal, maka saya tidak dapat membuktikannya.
Setiap bantuan untuk pertanyaan ini sangat kami hargai, terima kasih!