Preguntas y respuestas de la entrevista de Junit [para principiantes y experimentados]

Publicado: 2020-09-22

JUnit es una excelente solución para desarrolladores que trabajan con el lenguaje de programación Java. Se puede utilizar para implementar pruebas unitarias y pruebas de interfaz de usuario. Es una de las competencias más buscadas por las organizaciones que buscan mejorar la calidad de su código y la velocidad de programación. ¡Este artículo discutirá las preguntas estándar de la entrevista JUnit para ayudarlo a prepararse y llegar a esa lista!

Las 15 mejores preguntas y respuestas de la entrevista JUnit

1. ¿Qué es JUnit?

JUnit es un marco utilizado para realizar pruebas unitarias de código Java. Se considera la base de las pruebas del lado del desarrollador en el motor JVM. Por lo tanto, JUnit es una parte integral del campo de la programación y el desarrollo basado en pruebas.

2. ¿Qué entiendes por testing y unit testing?

La prueba es el proceso de verificar si la aplicación cumple con los requisitos y logra las funcionalidades deseadas. Las pruebas unitarias se refieren a evaluar una funcionalidad individual o una unidad de la aplicación.

3. Diferenciar entre pruebas manuales y automatizadas.

Las pruebas manuales se ejecutan sin scripts de prueba y requieren un esfuerzo humano dedicado para los diversos pasos involucrados. Por otro lado, las pruebas automatizadas se pueden realizar sin asistencia humana utilizando herramientas tecnológicas y programas de software. La automatización de pruebas es más económica y lleva menos tiempo que las pruebas manuales. Además, las pruebas manuales son menos fiables ya que no se pueden programar.

4. ¿Tiene que escribir un caso de prueba para cada lógica?

Un caso de prueba es un código que se escribe para establecer la lógica de un programa. En JUnit, no es necesario escribir un caso de prueba para cada lógica, sino solo para aquellas que pueden romperse razonablemente.

Un caso de prueba de unidad comprendería una colección de datos de entrada y salida esperada. El paquete org.junit contiene varias clases e interfaces para ayudarlo en las pruebas unitarias, como Assert, Test, Before, After, etc.

5. ¿Mencione algunos ejemplos de herramientas con las que puede integrar JUnit?

JUnit es un marco fácil de usar para el desarrollo de Java. Se puede ampliar e integrar fácilmente con Eclipse IDE, Apache Ant y Maven.

6. Enumere algunas extensiones útiles de JUnit y explique su propósito.

Hay cuatro extensiones principales de JUnit, a saber, Cactus, JWebUnit, XMLUnit y MockObject. Hemos descrito sus usos en detalle a continuación.

  • Cactus: es un marco para probar código Java del lado del servidor que implementa pruebas dentro de un contenedor. El ecosistema de cactus tiene dos componentes, a saber, el marco de trabajo de Cactus y los módulos de integración de Cactus. El marco es el motor que proporciona la API para escribir pruebas, mientras que los módulos de integración se encargan del front-end con la ayuda de los complementos.
  • JWebUnit: este marco basado en Java proporciona una interfaz de prueba unificada al combinar las capacidades de HtmlUnit y Selenium. JWebUnit hace que sea muy fácil navegar por las aplicaciones web a través de enlaces, validación de contenido de tablas, entrada y envío de formularios y otras funciones. Además de la API de Java de alto nivel, permite la creación rápida de pruebas con sus afirmaciones listas para usar.
  • XMLUnit: Ofrece una sola clase de extensión llamada XMLTestCase. XMLUnit también proporciona clases de soporte que permiten afirmaciones sobre la validez de una pieza XML (clase Validator), las diferencias entre dos piezas XML (Diff y DetailDiff), el resultado de la transformación de XML (clase Transformer), entre otros.
  • MockObject: cuando es imposible o impracticable incluir objetos reales en una prueba unitaria, los objetos simulados pueden resultar de gran ayuda. Puede simular el comportamiento de objetos complejos e incorporarlos con los siguientes pasos de codificación:
  1. Crear instancias de objetos simulados
  2. Establecer estado y expectativas
  3. Invocar código de dominio usando objetos simulados como parámetros
  4. Verificar consistencia

7. ¿Cómo prueba los métodos 'protegido' y 'privado'?

En el método protegido, la clase de prueba y la clase de destino se declaran en el mismo paquete. Sin embargo, en el método privado, no existe una forma directa de prueba. O tiene que cambiar su método a 'protegido' o hacer la prueba manualmente.

8. ¿Qué sucede en JUnit cuando el tipo de devolución es "cadena"?

En esta situación, la compilación pasaría, pero la ejecución fallaría. Esto ocurriría porque todos los métodos de prueba JUnit están diseñados para devolver "vacío".

9. Definir (i) accesorios (ii) traje de prueba (iii) corredor de prueba (iv) clases JUnit

(i) Los accesorios se utilizan como línea de base para ejecutar las pruebas, estableciendo la repetibilidad de los resultados. Un dispositivo de prueba comprende un estado fijo de un conjunto de objetos. Los métodos incluyen:

  • setUp(): se ejecuta antes de una invocación de prueba.
  • tearDown(): Se ejecuta después de un método de prueba.

(ii) Test Runner: Ejecuta los casos de prueba.

(iii) Clases JUnit: Contienen métodos que se utilizarán para escribir y probar JUnits.

(iv) Test Suite es un paquete o colección de casos de prueba de unidad que se ejecutan juntos. Puede ejecutar una prueba de conjunto en JUnit con la anotación @Suite o @RunWith.

Leer: Proyecto de sistema de gestión de bibliotecas en Java

10. Mencione algunas anotaciones JUnit de uso frecuente.

Las anotaciones son simplemente metaetiquetas que puede agregar a su código. La anotación @Test marca un método particular como método de prueba. Algunas otras anotaciones útiles incluyen @Before, @BeforeClass, @After, @AfterClass y @Ignores. Para implementar una prueba JUnit, necesitaría saber la importancia de estas anotaciones. Entonces, vamos a familiarizarnos con ellos uno por uno.

  • Prueba: esta anotación le dice a JUnit que puede ejecutar el método public void como un caso de prueba. Es básicamente un reemplazo para org.junit.TestCase
  • Before: si desea ejecutar cualquier declaración (por ejemplo, condiciones previas) antes de un caso de prueba en particular, use @Before. Esta anotación le permite ejecutar objetos similares antes de los métodos de prueba.
  • Before Class: puede usar la anotación @BeforeClass en JUnit para ejecutar declaraciones antes de todos los casos de prueba.
  • Después: Hace que se ejecuten algunas declaraciones después de cada caso de prueba, como eliminar archivos temporales, restablecer variables, etc.
  • After Class: la anotación @AfterClass le permite ejecutar declaraciones después de todos los casos de prueba. Por ejemplo, la liberación de todos los recursos una vez finalizada la ejecución.
  • Ignorar: Se utiliza para ignorar ciertas sentencias durante la ejecución. Por ejemplo, deshabilitar casos de prueba.

Lea también : Preguntas de la entrevista de Java

11. Explicar los diferentes tipos de clases JUnit.

Assert, TestCase y TestResult son algunas de las clases vitales de JUnit. Assert proporciona métodos para los casos de prueba. TestCase contiene un caso de prueba, que define el dispositivo para ejecutar varias pruebas. TestResult incluye métodos para recopilar los resultados.

12. ¿Cuándo escribes una prueba unitaria?

En un ciclo de desarrollo típico, las pruebas unitarias se escriben antes que el código. Esta práctica permite a los desarrolladores mantener la calidad de su código.

13. ¿Por qué debería abstenerse de usar System.out.printIn() para la depuración?

Si usa System.out.printIn() para depurar su código, se beneficiará a largo plazo. Cada vez que se ejecuta el programa, resultará en un escaneo manual de toda la salida para garantizar que el código funcione correctamente. Por lo tanto, requeriría relativamente menos tiempo codificar métodos JUnit y realizar pruebas en archivos de clase.

14. ¿Adónde va la basura de prueba en JUnit?

El corredor de pruebas mantiene las referencias durante la duración de la prueba. En el caso de una prueba extendida que tenga muchas instancias de prueba, es posible que la basura no se recopile hasta el final de la ejecución de la prueba. Podemos usar tearDown() para recolectar la basura antes de que se complete la ejecución de la prueba. En este método, establecemos explícitamente un objeto en nulo.

15. ¿Cómo se instala Junit?

El primer paso es descargar JUnit 5, la última versión de JUnit (sería un archivo llamado junit.zip). Se nos pedirá que descomprimamos el archivo de distribución en un directorio, %JUNIT_HOME%. Luego, agregaríamos JUnit al classpath.

A continuación, probaríamos la instalación. Esto implicaría ejecutar pruebas de muestra (ubicadas no en el archivo junit.jar, sino en el directorio de instalación) distribuidas con Junit. Por último, confirmaríamos que todas las pruebas pasan con un mensaje de "OK". Si no es así, volveríamos atrás y verificaríamos si junit.jar está en el classpath.

Consulte: Cómo codificar, compilar y ejecutar proyectos Java

Conclusión

Con las preguntas de la entrevista de JUnit anteriores, puede repasar sus conceptos en preparación para trabajos de desarrollador. Puestos como ingeniero de automatización de pruebas e ingeniero de software también incluyen JUnit en su conjunto de habilidades deseado. Los reclutadores quieren medir su conocimiento técnico y su capacidad de comunicación. Entonces, el contenido de su respuesta y cómo la presenta marcaría la diferencia.

Si está interesado en obtener más información sobre el desarrollo de software de pila completa, consulte el Diploma PG de upGrad & IIIT-B en desarrollo de software de pila completa, que está diseñado para profesionales que trabajan y ofrece más de 500 horas de capacitación rigurosa, más de 9 proyectos y asignaciones, estado de ex alumnos de IIIT-B, proyectos finales prácticos y asistencia laboral con las mejores empresas.

Aterrice en el trabajo de sus sueños

UPGRAD Y DIPLOMA PG DE IIIT-BANGALORE EN DESARROLLO FULL STACK
Inscríbase hoy