tengo este método en mi clase de acceso a datos y tengo una prueba de unidad para asegurarme de que funciona correctamente, pero mi prueba no prueba la excepción, por lo que mi pregunta es ¿debo crear una nueva prueba para forzar la excepción? planteado o debería simplemente confiar en que el bloque de captura funcionará bien en caso de una excepción? Vale la pena el esfuerzo ?¿Debería forzar excepciones para probarlas?
aquí es un ejemplo:
public void UpdateProject(Project project)
{
using (var transaction = _session.BeginTransaction())
{
try
{
_session.Update(project);
_session.Flush();
transaction.Commit();
}
catch (HibernateException)
{
transaction.Rollback();
throw;
}
}
}
Siempre es divertido depurar un problema de producción donde el bloqueo está en el bloque catch – Mark
Si solo está registrando y volviendo a lanzar, no me molestaría. Probablemente. Siempre y cuando estuviera probando el registro en otro lugar. Si está haciendo algo importante, lo haría. – serialhobbyist
Sí, aunque revertir una transacción puede ser (no siempre) un proceso bastante pesado, que creo que debería probarse. En este caso, lo más probable es que lo pruebe. –