Para verificar se você possui testes suficientes ou não, verifique a cobertura do código e a cobertura da ramificação induzida pelos testes (talvez usando uma ferramenta de cobertura, talvez manualmente revendo os caminhos do código ou usando um depurador).
Se você chegar à conclusão de que os testes para as subclasses oferecem uma cobertura alta o suficiente para o código das classes base, então adicionar testes adicionais obviamente não trará muitos benefícios. Por outro lado, se houver caminhos de código que você só pode testar adicionando testes específicos usando a classe base diretamente, você deve seguir esta rota.
Outro motivo possível para "testar sua classe base diretamente" é que você deseja testar uma função específica dessa classe "isoladamente". Às vezes, pode ser mais fácil projetar casos de teste diretamente para um método específico, em vez de apenas testar esse método indiretamente, chamando os métodos de suas subclasses que usam esse método.
Note que quando você tem uma classe base genérica para que o cenário de uso típico é para derivar uma subclasse, a sua classe base é provavelmente abstrato. Portanto, para testar essa classe, você precisa fazer uma derivação de qualquer maneira. Para essa situação, testar "a classe base diretamente" pode significar adicionar uma derivação especial apenas para fins de teste, é claro.