Sim, ainda o chamamos de teste de unidade se as funções chamam outras funções.
Os testes de unidade devem testar o comportamento público de uma classe e não as implementações privadas. Conforme sugerido pelos testes deste artigo do Google sobre o banheiro .
Se você seguir as regras do Código Limpo , suas funções não deverão ter mais de 4 linhas de código. Isso torna impossível não testar outra função privada com seus testes de unidade.
Por que você não deveria testar separadamente a maioria das funções privadas? Como a refatoração o forçaria a continuar atualizando todos os seus testes de unidade de implementação. Isso se tornará frustrante quando você tiver muitos deles, enquanto o comportamento do público não deve mudar durante a refatoração e, portanto, o teste não precisa de atualização. Você deve poder testar a privacidade com seus pais públicos. Às vezes, pode valer a pena testar particulares complexos, mas se pergunta se eles deveriam ser uma classe separada por conta própria?
Teste de integração :
Agora, se a função faz parte de outra classe, é diferente. Em seguida, chamaríamos de teste de componente ou teste de integração. Você está integrando várias classes e executando um teste contra elas. A função B dependeria da função C. Para poder testar a função B, você poderia usar a injeção de dependência para isolar a função que está testando, agora seria um teste de unidade novamente.
Niels van Reijmersdal
fonte