Sí, todavía lo llamamos prueba de unidad si las funciones llaman a otras funciones.
Las pruebas unitarias deben probar el comportamiento público de una clase y no las implementaciones privadas. Como lo sugiere esta prueba de Google en el artículo de aseo .
Si sigue las reglas de Clean Code , sus funciones no deberían ser más largas que 4 líneas de código. Esto hace que sea imposible no probar otra función privada con sus pruebas unitarias.
¿Por qué no debería probar la unidad de la mayoría de las funciones privadas por separado? Porque la refactorización lo obligaría a seguir actualizando todas sus pruebas unitarias de implementación. Esto será frustrante cuando tenga muchos de ellos, mientras que el comportamiento público no debería cambiar durante la refactorización y, por lo tanto, la prueba no debería necesitar ninguna actualización. Debería poder evaluar a los privados con sus padres públicos. A veces puede valer la pena probar complejos privados, pero se preguntan si deberían ser una clase separada por sí mismos
Prueba de integración :
Ahora, si la función es parte de otra clase, es diferente. Entonces lo llamaríamos pruebas de componentes o pruebas de integración. Estás integrando múltiples clases y ejecutando una prueba contra ellas. La función B dependería de la función C. Para poder realizar una prueba unitaria de la función B, podría usar la inyección de dependencia para aislar la función que está probando, ahora sería una prueba unitaria nuevamente.
Niels van Reijmersdal
fuente