Bagikan melalui


Skrip dalam Pengujian Unit SQL Server

Setiap pengujian unit SQL Server berisi satu tindakan pra-pengujian, tindakan pengujian, dan tindakan pasca-pengujian. Masing-masing tindakan ini pada gilirannya berisi hal berikut:

  • Skrip Transact-SQL yang dijalankan pada database.

  • Nol atau lebih kondisi pengujian yang mengevaluasi hasil yang dikembalikan dari eksekusi skrip.

Skrip pengujian Transact-SQL dalam tindakan pengujian adalah satu-satunya komponen yang harus Anda sertakan dalam setiap pengujian unit SQL Server. Selain skrip pengujian itu sendiri, Anda mungkin juga ingin menentukan kondisi pengujian untuk memverifikasi apakah skrip pengujian mengembalikan nilai atau serangkaian nilai yang Anda harapkan. Tindakan pengujian menjalankan atau mengubah objek tertentu dalam database tersebut lalu mengevaluasi perubahan tersebut.

Untuk setiap tindakan pengujian, Anda dapat menyertakan satu tindakan pra-pengujian dan satu tindakan pasca-pengujian. Mirip dengan tindakan pengujian, setiap tindakan pra-pengujian dan setiap tindakan pasca-pengujian berisi satu skrip Transact-SQL dan nol atau beberapa kondisi pengujian. Anda dapat menggunakan tindakan pra-pengujian untuk memastikan bahwa database dalam keadaan yang memungkinkan tindakan pengujian Anda berjalan dan mengembalikan hasil yang bermakna. Misalnya, Anda dapat menggunakan tindakan pra-pengujian untuk memverifikasi bahwa tabel berisi data sebelum skrip pengujian melakukan operasi pada data tersebut. Setelah tindakan pra-pengujian menyiapkan database dan tindakan pengujian mengembalikan hasil yang bermakna, tindakan pasca-pengujian dapat digunakan untuk mengembalikan database ke keadaan di sebelum tindakan pra-pengujian berjalan. Atau, dalam beberapa kasus, Anda mungkin menggunakan tindakan pasca-pengujian untuk memvalidasi hasil tindakan pengujian. Ini karena tindakan pasca-pengujian dapat memiliki hak istimewa database yang lebih besar daripada tindakan pengujian. Untuk informasi selengkapnya, lihat Gambaran Umum String Koneksi dan Izin.

Selain ketiga tindakan ini, ada juga dua skrip pengujian (disebut sebagai skrip umum), yang berjalan sebelum dan sesudah setiap pengujian unit SQL Server berjalan. Akibatnya, hingga lima skrip Transact-SQL dapat dijalankan selama eksekusi satu pengujian unit SQL Server. Hanya skrip Transact-SQL yang terkandung dalam tindakan pengujian yang diperlukan; skrip umum dan skrip tindakan pra-pengujian dan pasca-pengujian bersifat opsional.

Tabel berikut ini menyediakan daftar lengkap skrip yang terkait dengan pengujian unit SQL Server apa pun.

Tindakan Jenis skrip Deskripsi
TestInitialize Skrip umum (inisialisasi) (Opsional) Skrip ini mendahului semua tindakan pra-pengujian dan pengujian dalam pengujian unit. Skrip TestInitialize berjalan sebelum setiap pengujian unit di kelas pengujian tertentu. Skrip ini dijalankan menggunakan konteks istimewa.
Pra-pengujian Menguji skrip (Opsional) Skrip ini adalah bagian dari pengujian unit. Skrip pra-pengujian berjalan sebelum tindakan pengujian dalam pengujian unit. Skrip ini dijalankan menggunakan konteks istimewa.
Uji Menguji skrip (Diperlukan) Skrip ini adalah bagian dari pengujian unit. Skrip ini mungkin, misalnya, menjalankan prosedur tersimpan yang mendapatkan, menyisipkan, atau memperbarui nilai tabel. Skrip ini dijalankan menggunakan konteks eksekusi.
Pasca-pengujian Menguji skrip (Opsional) Skrip ini adalah bagian dari pengujian unit. Skrip pasca-pengujian berjalan setelah pengujian unit individual. Skrip ini dijalankan menggunakan konteks istimewa.
TestCleanup Skrip umum (pembersihan) (Opsional) Skrip ini mengikuti pengujian unit. Skrip TestCleanup berjalan setelah semua pengujian unit di kelas pengujian tertentu. Skrip ini dijalankan menggunakan konteks istimewa.

Untuk informasi selengkapnya tentang konteks keamanan yang berbeda di mana masing-masing skrip ini dijalankan, lihat Gambaran Umum String Koneksi dan Izin dan bagian izin pengujian unit SQL Server di Izin yang Diperlukan untuk SQL Server Data Tools.

Urutan Skrip yang Dijalankan

Penting untuk memahami urutan di mana setiap skrip berjalan. Meskipun Anda tidak dapat mengubah urutan tersebut, Anda dapat memutuskan skrip mana yang ingin Anda jalankan. Ilustrasi berikut mencakup pemilihan skrip yang dapat Anda gunakan dalam uji coba yang berisi dua pengujian unit SQL Server dan menunjukkan urutan eksekusinya:

Dua Unit Database Menguji

Catatan

Jika penyebaran proyek database SQL Server telah dikonfigurasi, ini terjadi pada awal eksekusi pengujian, di bawah string koneksi konteks istimewa. Untuk informasi selengkapnya, lihat Cara: Mengonfigurasi Eksekusi Pengujian Unit SQL Server.

Inisialisasi dan Pembersihan Skrip

Dalam Designer Pengujian Unit SQL Server, skrip TestInitialize dan TestCleanup disebut sebagai skrip umum. Contoh sebelumnya mengasumsikan bahwa dua pengujian unit adalah bagian dari kelas pengujian yang sama. Akibatnya, mereka berbagi skrip TestInitialize dan TestCleanup yang sama. Untuk semua pengujian unit dalam satu kelas pengujian, ini selalu terjadi. Namun, jika uji coba Anda berisi pengujian unit dari kelas pengujian yang berbeda, skrip umum untuk kelas pengujian terkait akan dijalankan sebelum dan sesudah pengujian unit berjalan.

Jika Anda menulis pengujian unit hanya menggunakan Designer Pengujian Unit SQL Server, Anda mungkin tidak terbiasa dengan konsep kelas pengujian. Setiap kali Anda membuat pengujian unit dengan membuka menu Uji dan mengklik Pengujian Baru, SQL Server Data Tools menghasilkan kelas pengujian. Kelas pengujian muncul di Penjelajah Solusi dengan nama pengujian yang Anda tentukan, diikuti dengan ekstensi .cs atau .vb. Dalam setiap kelas pengujian, pengujian unit individual disimpan sebagai metode pengujian. Namun, terlepas dari jumlah metode pengujian (yaitu, pengujian unit), setiap kelas pengujian dapat memiliki nol atau satu skrip TestInitialize dan TestCleanup.

Anda dapat menggunakan skrip TestInitialize untuk menyiapkan database pengujian, dan Anda dapat menggunakan skrip TestCleanup untuk mengembalikan database pengujian ke status yang diketahui. Misalnya, Anda dapat menggunakan TestInitialize untuk membuat prosedur tersimpan pembantu yang Anda jalankan nanti, dalam skrip pengujian, untuk menguji prosedur tersimpan yang berbeda.

Skrip Pra-Pengujian dan Pasca-Pengujian

Skrip yang terkait dengan tindakan pra-pengujian dan pasca-pengujian kemungkinan akan bervariasi dari satu pengujian unit ke pengujian berikutnya. Anda dapat menggunakan skrip ini untuk membuat perubahan inkremental pada database lalu membersihkan perubahan tersebut.

Lihat juga

Membuat dan Menentukan Pengujian Unit SQL Server
Menggunakan Kondisi Pengujian dalam Pengujian Unit SQL Server