No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Curso Básico de Testing en Java

Curso Básico de Testing en Java

Ferran Maylinch Carrasco

Ferran Maylinch Carrasco

Test unitario con JUnit

5/24
Recursos

Vamos a añadir Junit a nuestro proyecto copiando las siguientes líneas de código:

<dependencies>
  <dependency>
    <groupId>junitgroupId>
    <artifactId>junitartifactId>
    <version>4.12version>
     <scope>testscope>
  dependency>
dependencies>

La función assertEquals de JUnit se encarga de comprobar que dos valores sean iguales, en este caso comprobar si nuestra función repeat retorna el valor esperado.

Debemos indicarle a JUnit mediante @Test que función va a realizar una prueba.

Aportes 33

Preguntas 4

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

les ahorro el trabajo

<dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

Que bien explica este profesor, me encanta lo claro que es.

¿Es idea mía o están desorganizadas las clases?

Yo pasando medio hora en la clase 4 viendo como instalarlo y en la clase 6 lo explican. :v

pom.xml

...
  <groupId>com.platzi</groupId>
  <artifactId>java-tests</artifactId>
  <version>1.0-SNAPSHOT</version>

  <!-- Define project build version -->
  <properties>
    <maven.compiler.source>1.8</maven.compiler.source>
    <maven.compiler.target>1.8</maven.compiler.target>
  </properties>

  <dependencies>
    <!-- https://mvnrepository.com/artifact/junit/junit -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.12</version>
      <scope>test</scope>
    </dependency>
  </dependencies>
</project>

StringUtilTest.java

package com.platzi.javatests.util;

import org.junit.Test;

import static org.junit.Assert.assertEquals;

public class StringUtilTest {

  @Test
  public void testRepeat() {
    assertEquals("holaholahola", StringUtil.repeat("hola", 3));
    assertEquals("hola", StringUtil.repeat("hola", 1));
  }
}

🤔 en esta clase explica la notación @Test de JUnit (e instala JUnit) pero lo aplica antes en la clase 4. Me marea un poco tengo que ir y volver entre clases.

Excelente clase instructor Ferran y gracias por compartir el enlace de la documentación a JUnit4.

Buena esa, excelente presentación de como usar el verdadero poder de JUnit, también buena por el IDE IntelliJ IDEA, tiene muchas ventajas para el momento de escribir ahorra tiempo con sus shortcuts

Para JUnit 5.9.2 la clase es org.junit.jupiter.api.Assertions;

import static org.junit.jupiter.api.Assertions.*

también pueden ir a su archivo pom.xml dar click derecho -> generate -> Dependency -> escriben “org.junit” y les aparece seleccionan la versión que quieren y listo

para quienes usen Gradle agregar probablemente tienen jupiter como su runtime por tanto deben tener las dependencias de esta forma:

dependencies {
    testImplementation 'junit:junit:4.13.1'
}

test {
    useJUnit()

    maxHeapSize = '1G'
}

Como correr el test con la versión community

<dependencies>
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>
</dependencies>

¿Qué cambian en las versiones de JUnit con la 3 y la 4?

Aquí Junio de 2024, recomiendo ir a la última versión de Junit para evitar errores
En 2024 importamos junit.jupiter y los parámetros no están invertidos: ![](https://static.platzi.com/media/user_upload/image-5b72d78f-8953-44d4-b33e-b307e8915cfd.jpg) ![](https://static.platzi.com/media/user_upload/image-c2c0e4f6-92a9-4a6b-8607-2756e4d9a0ce.jpg)
```java package com.platzi.javatests.util; import org.junit.Assert; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; public class StringUtilTest { @Test public void testRepeatJunit5(){ //Junit5 Assertions.assertEquals("holaholahola", StringUtil.functionalRepeat("hola", 3)); Assertions.assertEquals("holahola",StringUtil.functionalRepeat("hola",2)); } @org.junit.Test public void testRepeatJunit4(){ //Junit4 Assert.assertEquals("holaholahola", StringUtil.functionalRepeat("hola", 3)); Assert.assertEquals("olahola",StringUtil.functionalRepeat("hola",2)); } /** * primitive way to implement an equals assert test without Junit. Just for leaning purposes * @param expected * @param result */ private static void assertEqualsManual(String expected, String result) { if (result.equals(expected)){ System.out.println("OK"); }else { throw new RuntimeException("ERROR: " + result + " is not equals to expected:" + expected); } } } ```

Me da curiosidad la razón por la cual se usó JUnit 4 en lugar de la última versión (5).

Aporto mi repositorio con el código de la clase: <https://github.com/Jeixonx/testingJava/commit/5d32b3f8c18b4dd9292c467f8ab41f05c86bddd8>
\<dependencies> \ \<dependency> \<groupId>org.junit.jupiter\</groupId> \<artifactId>junit-jupiter-api\</artifactId> \<version>5.7.2\</version> \ \<scope>test\</scope> \</dependency> \ \<dependency> \<groupId>org.junit.jupiter\</groupId> \<artifactId>junit-jupiter-engine\</artifactId> \<version>5.7.2\</version> \ \<scope>test\</scope> \</dependency> \ \ \</dependencies>

Que bien explica el profe! excelente trabajo Ferran! 👌

Ahora veo hay pocas anotaciones para JUnit pero supongo que lo que lo hace tan bueno es las librerias para realizar pruebas.

Para las personas que no utilizan maven podría descargar el jar de junit de la pagina de maven y lo incorporan

Pom del maven

<<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.test.prueba</groupId>
    <artifactId>test</artifactId>
    <version>1.0-SNAPSHOT</version>


    <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
    </properties>

    <dependencies>

        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.12</version>
            <scope>test</scope>
        </dependency>

    </dependencies>

</project>>

VA QUEDANDO MUY CLARO

😃 comencemos…

Funciona 😃

Gracias

Muy buena explicacion.

Orale wey esto era lo q necesitaba, muchas espectativas :v

Genial, primera vez que tomo un curso por este profe y va de maravilla !

Excelente explicación, después de los dos anteriores cursos, aquí volví a comprender muy bien.