Nivel de detalle de tus pruebas unitarias [cerrado]

Quería comenzar una discusión sobre los detalles que cubren en sus pruebas de unidad.

¿Pruebas funcionalidades principales, que consisten en varios métodos que hacen una tarea a la vez con una prueba? ¿O tal vez incluso pruebas propiedades automáticas?

Porque, por ejemplo, veo poco valor en escribir una prueba que probaría solo esto:

   public Email
   {
      set
      {
         if(Regex.Match(/*....*/))
             email = value;
      }
      get
      {
        return email;
      }
   }

Como está muy claro y es solo una pérdida de tiempo. Por lo general, cuando hago pruebas unitarias, pruebo una tarea completa, como en este ejemplo, un procedimiento de registro completo.

Lo pregunto porque, actualmente, estoy leyendo el libro "Aplicación de diseño y patrones impulsados ​​por dominios", escrito por Jimmy Nilsson, y allí señala que está probando incluso detalles tan pequeños con una prueba específica.

¿No es este nivel de cobertura un uso excesivo?