Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam pengujian unit SQL Server, skrip pengujian Transact-SQL berjalan dan mengembalikan hasilnya. Terkadang, hasilnya dikembalikan sebagai kumpulan hasil. 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 dalam pengujian unit SQL Server.
Alih-alih menggunakan kondisi pengujian, Anda juga dapat menggunakan pernyataan Transact-SQL, yang merupakan THROW pernyataan 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. Lebih cepat menjalankan pernyataan Transact-SQL di server daripada terlebih dahulu memindahkan data ke komputer klien dan memanipulasinya secara lokal.
Keakraban dengan bahasa. Anda mungkin lebih suka bahasa tertentu berdasarkan keahlian Anda saat ini dan karenanya memilih pernyataan Transact-SQL atau kondisi pengujian C# atau Visual Basic.
Validasi kompleks. Dalam beberapa kasus, Anda dapat membangun pengujian yang lebih kompleks di 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 di 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)]
Where:
- nnnnn adalah jumlah pesan yang diharapkan, misalnya 14025
- x adalah tingkat keparahan pengecualian yang diharapkan
- y adalah status pengecualian yang diharapkan
Setiap parameter yang tidak ditentukan diabaikan. Anda meneruskan parameter ini ke RAISERROR pernyataan dalam kode database Anda. Jika Anda menentukan MatchFirstError = true, atribut cocok dengan salah satu SqlErrors di dalam pengecualian. Perilaku default (MatchFirstError = true) adalah hanya mencocokkan 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
Nota
Gunakan THROW alih-alih RAISERROR.
RAISERROR sekarang tidak digunakan lagi.
Anda dapat langsung menggunakan pernyataan Transact-SQL di server dengan menggunakan RAISERROR pernyataan dalam skrip Transact-SQL Anda. Sintaksnya adalah:
RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState)
di mana:
-
@ErrorMessageadalah pesan kesalahan yang ditentukan pengguna. Anda dapat memformat string pesan ini seperti fungsiprintf_s. -
@ErrorSeverityadalah tingkat keparahan yang ditentukan pengguna dari 0 - 18.
Nota
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. Contoh penggunaan RAISERROR dalam pengujian unit SQL Server disediakan dalam artikel, Cara: Menulis Pengujian Unit SQL Server yang Berjalan dalam Cakupan Transaksi Tunggal.