Bagikan melalui


Menggunakan Pernyataan Transact-SQL dalam Pengujian Unit SQL Server

Dalam pengujian unit SQL Server, skrip pengujian Transact-SQL menjalankan dan mengembalikan hasilnya. Terkadang, hasilnya dikembalikan sebagai hasil yang ditetapkan. Anda dapat memvalidasi hasil dengan menggunakan kondisi pengujian. Misalnya, Anda dapat menggunakan kondisi pengujian untuk memeriksa berapa banyak baris yang dikembalikan dalam tataan hasil tertentu atau untuk memverifikasi berapa lama pengujian tertentu berjalan. Untuk informasi selengkapnya tentang kondisi pengujian, lihat Menggunakan Kondisi Pengujian di SQL Server Pengujian Unit.

Alih-alih menggunakan kondisi pengujian, Anda juga dapat menggunakan pernyataan Transact-SQL, yaitu pernyataan THROW atau RAISERROR dalam skrip Transact-SQL. Dalam keadaan tertentu, Anda mungkin lebih suka menggunakan pernyataan Transact-SQL alih-alih kondisi pengujian.

Menggunakan Pernyataan Transact-SQL

Anda harus mempertimbangkan poin-poin berikut sebelum memutuskan untuk memvalidasi data baik dengan menggunakan pernyataan Transact-SQL atau dengan menggunakan kondisi pengujian.

  • Performa. Menjalankan pernyataan Transact-SQL di server lebih cepat daripada memindahkan data ke komputer klien terlebih dahulu dan memanipulasinya secara lokal.

  • Keakraban dengan bahasa. Anda mungkin lebih suka bahasa tertentu berdasarkan keahlian Anda saat ini dan karena itu pilih pernyataan Transact-SQL atau kondisi pengujian Visual C# atau Visual Basic.

  • Validasi yang rumit. Dalam beberapa kasus, Anda dapat membangun pengujian yang lebih kompleks di Visual C# atau Visual Basic dan memvalidasi pengujian Anda pada klien.

  • Kesederhanaan. Seringkali lebih mudah untuk menggunakan kondisi pengujian yang telah ditentukan sebelumnya daripada menulis skrip yang setara dalam Transact-SQL.

  • Pustaka validasi warisan. Jika Anda sudah memiliki kode yang melakukan validasi, Anda dapat menggunakannya dalam pengujian unit SQL Server alih-alih menggunakan kondisi pengujian.

Menandai Metode Pengujian Unit dengan Pengecualian yang Diharapkan

Untuk menandai metode pengujian unit SQL Server dengan pengecualian yang diharapkan, tambahkan atribut berikut:

<ExpectedSqlException(MessageNumber=nnnnn, Severity=x, MatchFirstError=false, State=y)> _  
[ExpectedSqlException(MessageNumber=nnnnn, Severity=x, MatchFirstError=false, State=y)]  

Di mana:

  • nnnnn adalah jumlah pesan yang diharapkan, misalnya 14025

  • x adalah tingkat keparahan pengecualian yang diharapkan

  • y adalah status pengecualian yang diharapkan

Parameter yang tidak ditentukan diabaikan. Anda meneruskan parameter ini ke pernyataan RAISERROR dalam kode database Anda. Jika Anda menentukan MatchFirstError = true, atribut akan cocok dengan salah satu SqlErrors dalam pengecualian. Perilaku default (MatchFirstError = true) adalah hanya cocok dengan kesalahan pertama yang terjadi.

Untuk contoh cara menggunakan pengecualian yang diharapkan dan pengujian unit SQL Server negatif, lihat Panduan: Membuat dan Menjalankan Pengujian Unit SQL Server.

Pernyataan RAISERROR

Catatan

Gunakan THROW alih-alih RAISERROR. RAISERROR sekarang tidak digunakan lagi.

Anda dapat langsung menggunakan pernyataan Transact-SQL di server dengan menggunakan pernyataan RAISERROR dalam skrip Transact-SQL Anda. Sintaksnya adalah:

RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState)

di mana:

@ErrorMessage adalah pesan kesalahan yang ditentukan pengguna. Anda dapat memformat string pesan ini mirip dengan fungsi printf_s.

@ErrorSeverity adalah tingkat keparahan yang ditentukan pengguna dari 0 - 18.

Catatan

Nilai '0' dan '10' untuk tingkat keparahan tidak menyebabkan pengujian unit SQL Server gagal. Anda dapat menggunakan nilai lain dalam rentang 0 - 18 untuk menyebabkan pengujian gagal.

@ErrorState adalah bilangan bulat arbitrer dari 1 - 127. Anda dapat menggunakan bilangan bulat ini untuk membedakan antara kemunculan satu kesalahan yang dimunculkan di lokasi yang berbeda dalam kode.

Untuk informasi selengkapnya, lihat RAISERROR (Transact-SQL). Contoh penggunaan RAISERROR dalam pengujian unit SQL Server disediakan dalam topik, Cara: Menulis Pengujian Unit SQL Server yang Berjalan dalam Cakupan Transaksi Tunggal.

Lihat juga

Membuat dan Menentukan Pengujian Unit SQL Server
Menggunakan Kondisi Pengujian dalam Pengujian Unit SQL Server
Memverifikasi Kode Database dengan Menggunakan Pengujian Unit SQL Server
Cara: Membuka Pengujian Unit SQL Server untuk Diedit