Utilizzo di asserzioni T-SQL in unit test del database
Aggiornamento: novembre 2007
In uno unit test del database viene eseguito uno script di test Transact-SQL (T-SQL) e viene restituito un risultato. I risultati vengono talvolta restituiti come gruppo di risultati. È possibile convalidare i risultati utilizzando condizioni di test. È ad esempio possibile utilizzare una condizione di test per controllare il numero di righe restituite in un determinato gruppo di risultati o per verificare il tempo necessario per l'esecuzione di un test specifico. Per ulteriori informazioni sulle condizioni di test, vedere Utilizzo di condizioni di test negli unit test del database.
Anziché utilizzare condizioni di test, è possibile utilizzare asserzioni T-SQL, ovvero istruzioni RAISERROR in uno script T-SQL. In determinate circostanze, è preferibile utilizzare un'asserzione T-SQL anziché una condizione di test.
Utilizzo di asserzioni T-SQL
Prima di decidere di convalidare i dati utilizzando asserzioni T-SQL o condizioni di test, è opportuno fare le seguenti considerazioni.
Prestazioni. È più rapido eseguire un'asserzione T-SQL nel server anziché spostare prima i dati in un computer client e quindi manipolarli localmente.
Familiarità con il linguaggio. È possibile che si preferisca utilizzare un particolare linguaggio in base alla propria esperienza e che quindi si scelgano le asserzioni T-SQL oppure le condizioni di test C# o Visual Basic.
Complessità della convalida. In alcuni casi, è possibile generare una convalida di test più complessa semplicemente in C# o Visual Basic e convalidare i test nel client.
Librerie di convalida legacy. Se è già presente del codice per l'esecuzione della convalida, è possibile utilizzarlo in uno unit test del database anziché utilizzare condizioni di test.
Istruzione RAISERROR
È possibile utilizzare direttamente asserzioni T-SQL nel server utilizzando l'istruzione RAISERROR nello script T-SQL. La sintassi di questa istruzione è la seguente:
**RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState)**
dove:
@ErrorMessage è un messaggio di errore definito dall'utente. È possibile formattare questa stringa di messaggio in modo simile alla funzione printf_s.
@ErrorSeverity è un livello di gravità definito dall'utente compreso tra 0 e 18.
Nota: |
---|
I valori '0' e '10' per il livello di gravità non causano l'esito negativo dello unit test del database. È possibile utilizzare qualsiasi altro valore nell'intervallo compreso tra 0 e 18 per causare l'esito negativo del test. |
@ErrorState è un valore intero arbitrario compreso tra 1 e 127. È possibile utilizzare questo valore intero per fare differenza tra le occorrenze di un singolo errore generato in punti diversi del codice.
Per ulteriori informazioni, vedere "RAISERROR (Transact-SQL)" (https://go.microsoft.com/fwlink/?LinkId=66014) in SQL Server Books Online. Un esempio di utilizzo di RAISERROR in uno unit test del database è fornito nell'argomento Procedura: scrivere uno unit test del database da eseguire nell'ambito di una singola transazione.
Vedere anche
Attività
Procedura: aprire uno unit test del database da modificare
Concetti
Utilizzo di condizioni di test negli unit test del database
Panoramica sulla terminologia di Database Edition