¿Cómo escribir casos de prueba en una aplicación Java usando Mockito y Junit?

Mockito es un marco de prueba de código abierto que se utiliza para la prueba unitaria de aplicaciones Java. Desempeña un papel vital en el desarrollo de aplicaciones comprobables. Mockito se usa para simular interfaces para que se pueda agregar una funcionalidad ficticia a una interfaz simulada que se puede usar en pruebas unitarias. La prueba unitaria es un tipo de prueba de software en la que se prueban los componentes individuales del software. El objetivo principal de usar el marco Mockito es simplificar el desarrollo de una prueba burlándose de las dependencias externas y usándolas en el código de prueba. Y como resultado, Mockito proporciona un código de prueba más simple que es más fácil de entender, más legible y modificable. Mockito también se puede usar con otros marcos de prueba como JUnit y TestNG

El marco JUnit es un marco de Java que también se utiliza para realizar pruebas. Ahora, JUnit se usa como estándar cuando es necesario realizar pruebas en Java. Entonces, en este artículo, discutiremos casos de prueba en una aplicación java usando Mockito y Junit .

Implementación paso a paso

Paso 1: Cree un proyecto Maven en su IDE de Java favorito (Aquí estamos usando IntelliJ IDEA )

Paso 2: cuando haya creado con éxito un proyecto maven, debe agregar algunas dependencias en su archivo pom.xml . Tenemos que agregar la siguiente dependencia en su archivo pom.xml.

La dependencia de Mockito es la siguiente :

XML

<dependency>
    <groupId>org.mockito</groupId>
    <artifactId>mockito-all</artifactId>
    <version>2.0.2-beta</version>
</dependency>

La dependencia de Junit es la siguiente :

XML

<dependency>
    <groupId>junit</groupId>
    <artifactId>junit</artifactId>
    <version>4.8.2</version>
</dependency>

Implementación: a continuación se muestra el código completo para el archivo pom.xml

XML

<?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>org.example</groupId>
    <artifactId>mockito-demo</artifactId>
    <version>1.0-SNAPSHOT</version>
  
    <dependencies>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.8.2</version>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-all</artifactId>
            <version>2.0.2-beta</version>
        </dependency>
    </dependencies>
  
    <properties>
        <maven.compiler.source>11</maven.compiler.source>
        <maven.compiler.target>11</maven.compiler.target>
    </properties>
  
</project>

Paso 3: ahora debe crear una interfaz llamada TodoService y una clase llamada TodoServiceImpl. 

Java

// Java Program to Illustrate TodoService File
  
// Importing List class
import java.util.List;
  
// Interface
public interface TodoService {
  
    // Creating a simple method retrieveTodos()
    public List<String> retrieveTodos(String user);
}

Java

// Java Program to Illustrate TodoServiceImpl File
  
// Importing required classes
import java.util.ArrayList;
import java.util.List;
  
// Main class
public class TodoServiceImpl {
  
    // Creating a reference of
    // TodoService interface
    private TodoService todoService;
  
    // Constructor
    public TodoServiceImpl(TodoService todoService)
    {
  
        // This keyword refers to same instance itself
        this.todoService = todoService;
    }
  
    // Method
    // Filtering the string
    public List<String>
    retrieveTodosRelatedToJava(String user)
    {
  
        List<String> filteredTodos
            = new ArrayList<String>();
        List<String> todos
            = todoService.retrieveTodos(user);
  
        for (String todo : todos) {
  
            // Filtering the string that contains "Java"
            // keyword
            if (todo.contains("Java")) {
                filteredTodos.add(todo);
            }
        }
        return filteredTodos;
    }
}

Paso 4: Ahora vamos a realizar pruebas unitarias para el método retrieveTodosRelatedToJava() que está presente dentro del archivo TodoServiceImpl.java . Para crear la clase de prueba, siga estos pasos. Al principio, haga clic derecho dentro del archivo TodoServiceImpl.java

Luego haga clic en el botón Generar .

Luego haga clic en el botón Prueba.

Se mostrará una ventana emergente como esta. Aquí puede modificar el nombre de su clase de prueba. Además, verifique la configuración y el método con el que desea realizar la prueba unitaria. 

Ejemplo:

Java

// Java Program to Illustrate TodoServiceImplMockTest File
  
import static org.junit.Assert.assertEquals;
import static org.mockito.Mockito.when;
  
// Importing required classes
import java.util.Arrays;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.mockito.Mock;
import org.mockito.runners.MockitoJUnitRunner;
  
// MockitoJUnitRunner gives automatic validation
// of framework usage, as well as an automatic initMocks()
@RunWith(MockitoJUnitRunner.class)
  
// Main class
public class TodoServiceImplMockTest {
  
    TodoServiceImpl todoBusiness;
  
    // The Mockito.mock() method allows us to
    // create a mock object of a class or an interface
    @Mock TodoService todoServiceMock;
  
    // Methods annotated with the @Before
    // annotation are run before each test
    @Before public void setUp()
    {
        todoBusiness = new TodoServiceImpl(todoServiceMock);
    }
  
    // @Test
    // Tells the JUnit that the public void method
    // in which it is used can run as a test case
    @Test
    public void testRetrieveTodosRelatedToSpring_usingMock()
    {
        List<String> todos
            = Arrays.asList("Learn Spring", "Lear Java",
                            "Learn Spring Boot");
        when(todoServiceMock.retrieveTodos("User"))
            .thenReturn(todos);
  
        List<String> filteredTodos
            = todoBusiness.retrieveTodosRelatedToJava(
                "User");
        assertEquals(1, filteredTodos.size());
    }
  
    @Test
    public void
    testRetrieveTodosRelatedToSpring_withEmptyList_usingMock()
    {
        List<String> todos = Arrays.asList();
        when(todoServiceMock.retrieveTodos("Dummy"))
            .thenReturn(todos);
  
        List<String> filteredTodos
            = todoBusiness.retrieveTodosRelatedToJava(
                "Dummy");
        assertEquals(0, filteredTodos.size());
    }
}

Ahora ha escrito con éxito dos casos de prueba para su aplicación Java. Ahora, para ejecutar los casos de prueba, haga clic en el botón verde como se muestra en la imagen a continuación. Y puede ver que sus casos de prueba han sido aprobados. 

Publicación traducida automáticamente

Artículo escrito por AmiyaRanjanRout y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *