Pruebas unitarias de la clase Student en Java

JavaJavaBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este proyecto, aprenderás a escribir pruebas unitarias para una clase simple Student utilizando el marco de pruebas JUnit. El proyecto implica configurar el entorno de pruebas, escribir casos de prueba para los métodos get y set de la clase Student y verificar la corrección de la implementación.

🎯 Tareas

En este proyecto, aprenderás:

  • Cómo importar la dependencia de JUnit en el proyecto
  • Cómo configurar la clase StudentTest e inicializar un objeto Student para realizar pruebas
  • Cómo escribir casos de prueba para los métodos get de la clase Student
  • Cómo escribir casos de prueba para los métodos set de la clase Student

🏆 Logros

Después de completar este proyecto, serás capaz de:

  • Configurar un entorno de pruebas utilizando Maven y JUnit
  • Escribir pruebas unitarias efectivas para una clase Java
  • Verificar la corrección de la implementación utilizando casos de prueba
  • Aplicar las mejores prácticas para escribir código mantenible y confiable

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL java(("Java")) -.-> java/ObjectOrientedandAdvancedConceptsGroup(["Object-Oriented and Advanced Concepts"]) java(("Java")) -.-> java/SystemandDataProcessingGroup(["System and Data Processing"]) java/ObjectOrientedandAdvancedConceptsGroup -.-> java/classes_objects("Classes/Objects") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/class_methods("Class Methods") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/constructors("Constructors") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/packages_api("Packages / API") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/encapsulation("Encapsulation") java/ObjectOrientedandAdvancedConceptsGroup -.-> java/annotation("Annotation") java/SystemandDataProcessingGroup -.-> java/object_methods("Object Methods") subgraph Lab Skills java/classes_objects -.-> lab-300402{{"Pruebas unitarias de la clase Student en Java"}} java/class_methods -.-> lab-300402{{"Pruebas unitarias de la clase Student en Java"}} java/constructors -.-> lab-300402{{"Pruebas unitarias de la clase Student en Java"}} java/packages_api -.-> lab-300402{{"Pruebas unitarias de la clase Student en Java"}} java/encapsulation -.-> lab-300402{{"Pruebas unitarias de la clase Student en Java"}} java/annotation -.-> lab-300402{{"Pruebas unitarias de la clase Student en Java"}} java/object_methods -.-> lab-300402{{"Pruebas unitarias de la clase Student en Java"}} end

Importar la dependencia de JUnit

En este paso, aprenderás a importar la dependencia de JUnit en el proyecto.

  1. Abra el archivo pom.xml ubicado en el directorio ~/project/StudentClass.
  2. Agregue la siguiente dependencia dentro de la sección <dependencies>:
<dependency>
  <groupId>junit</groupId>
  <artifactId>junit</artifactId>
  <version>4.11</version>
  <scope>test</scope>
</dependency>

Esto agregará la dependencia de JUnit 4 al proyecto, que es necesaria para escribir y ejecutar las pruebas unitarias.

✨ Revisar Solución y Practicar

Configurar la clase de prueba de Student

En este paso, aprenderás a configurar la clase StudentTest e inicializar un objeto Student para realizar pruebas.

  1. Abra el archivo StudentTest.java ubicado en el directorio ~/project/StudentClass/src/test/java/com/labex.
  2. Agregue el siguiente método con la anotación @Before a la clase StudentTest:
private Student studentTest;

@Before
public void setUp() {
    studentTest = new Student("Tom", "male", 25);
}

Este método setUp() se ejecutará antes de cada método de prueba y creará un nuevo objeto Student con el nombre, sexo y edad dados.

✨ Revisar Solución y Practicar

Escribir pruebas para los métodos get y set

En este paso, escribirás pruebas para verificar los métodos get y set de la clase Student.

  1. Agrega los siguientes métodos de prueba a la clase StudentTest:
@Test
public void testGetName() {
    assertEquals("Tom", studentTest.getName());
}

@Test
public void testGetAge() {
    assertEquals(25, studentTest.getAge());
}

@Test
public void testGetSex() {
    assertEquals("male", studentTest.getSex());
}

Estas pruebas garantizarán que los métodos getName(), getAge() y getSex() de la clase Student funcionen correctamente.

  1. Agrega los siguientes métodos de prueba a la clase StudentTest:
@Test
public void testSetName() {
    studentTest.setName("Jimmy");
    assertEquals("Jimmy", studentTest.getName());
}

@Test
public void testSetAge() {
    studentTest.setAge(26);
    assertEquals(25, studentTest.getAge()); // La edad debe permanecer sin cambios
}

@Test
public void testSetSex() {
    studentTest.setSex("female");
    assertEquals("female", studentTest.getSex());
}

Estas pruebas garantizarán que los métodos setName(), setAge() y setSex() de la clase Student funcionen correctamente.

✨ Revisar Solución y Practicar

Ejecutar el caso de prueba

Para ejecutar el caso de prueba, siga estos pasos:

  1. En su terminal, navegue hasta el directorio del proyecto StudentClass utilizando el siguiente comando:
cd ~/project/StudentClass/
  1. Ejecute el siguiente comando para ejecutar el caso de prueba:
mvn test

La salida debe ser similar a la siguiente:

[INFO] -------------------------------------------------------
[INFO]  T E S T S
[INFO] -------------------------------------------------------
[INFO] Running com.labex.StudentTest
[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.099 s - in com.labex.StudentTest
[INFO]
[INFO] Results:
[INFO]
[INFO] Tests run: 6, Failures: 0, Errors: 0, Skipped: 0
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time:  4.237 s
[INFO] Finished at: 2024-05-12T12:23:30Z
[INFO] ------------------------------------------------------------------------

Estas pruebas aseguran que los métodos de la clase Student, como getName, getAge, getSex, setName, setAge y setSex, estén funcionando correctamente validando su comportamiento esperado a través de aserciones.

✨ Revisar Solución y Practicar

Resumen

¡Felicitaciones! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.