Чтобы проверить, достаточно ли у вас тестов или нет, вы можете проверить покрытие кода и покрытие ветви, вызванное тестами (возможно, с помощью инструмента покрытия, возможно вручную, путем просмотра путей кода или с помощью отладчика).
Если вы придете к выводу, что тесты для подклассов обеспечивают достаточно высокий охват кода базовых классов, то добавление дополнительных тестов, очевидно, не принесет вам большой пользы. С другой стороны, если есть пути кода, которые вы можете протестировать, только добавив конкретные тесты, используя базовый класс напрямую, то вам следует пойти по этому пути.
Другая возможная причина для «тестирования вашего базового класса напрямую» заключается в том, что вы хотите протестировать определенную функцию этого класса «в изоляции». Иногда бывает проще спроектировать тестовые случаи непосредственно для конкретного метода, а не только косвенно тестировать этот метод, вызывая методы ваших подклассов, которые используют этот метод.
Обратите внимание, что если у вас есть базовый базовый класс, для которого типичный сценарий использования состоит в получении подкласса, ваш базовый класс, вероятно, является абстрактным. Так что для тестирования такого класса вам все равно нужно сделать вывод. В этой ситуации тестирование «непосредственно базового класса» может означать, конечно, добавление специального деривации только для целей тестирования.