Cómo ROLLBACK una transacción cuando se prueba usando tSQLt

Hace poco estaba llamando a un procedimiento que contenía un rasierror en el código. El raiserror estaba en un bloque de prueba. También un BEGIN TRAN estaba en el mismo bloque de captura de intento después del raiserror. El bloque Catch está diseñado para ROLLBACK la transacción si se produjo el error en la transacción. La forma en que lo hace es verificar el @@ TRANCOUNT si es mayor que 0 Sé que había comenzado una transacción y necesita ROLLBACK. Cuando se prueba con tSQLt, @@ TRANCOUNT siempre es> 0, por lo que si alguna vez llega al Bloque CATCH, se ejecuta ROLLBACK y tSQLt falla (porque tSQLt se está ejecutando en una transacción). Cuando hago un error y se ejecuta el bloque CATCH, tSQLt siempre falla la prueba. No tengo forma de probar el manejo correcto del raiserror. ¿Cómo crearía un caso de prueba que potencialmente puede ROLLBACK una transacción?

Respuestas a la pregunta(8)

Su respuesta a la pregunta