Para verificar si tiene suficientes pruebas o no, puede verificar la cobertura de su código y la cobertura de su sucursal inducida por las pruebas (tal vez usando una herramienta de cobertura, tal vez manualmente revisando las rutas de código o usando un depurador).
Si llega a la conclusión de que las pruebas para las subclases le brindan una cobertura lo suficientemente alta para su código de clases base, entonces agregar pruebas adicionales obviamente no le brindará muchos beneficios. Por otro lado, si hay rutas de código que solo puede probar agregando pruebas específicas utilizando la clase base directamente, entonces debe seguir esta ruta.
Otra posible razón para "probar su clase base directamente" es que desea probar una función específica de esa clase "aisladamente". A veces puede ser más fácil diseñar casos de prueba directamente para un método específico, en lugar de solo probar ese método indirectamente llamando a los métodos de sus subclases que usan ese método.
Tenga en cuenta que cuando tiene una clase base genérica para la cual el escenario de uso típico es derivar una subclase, su clase base es probablemente abstracta. Entonces, para probar una clase de este tipo, debe hacer una derivación de todos modos. Para esta situación, probar "la clase base directamente" podría significar agregar una derivación especial solo para fines de prueba, por supuesto.