Ejemplos de pruebas en React


*

">

Como usar toEqual en mis tests?


toEqual para que sirve?


Segun la propia web oficial de Jest funciona para "para comparar de forma recursiva todas las propiedades de las instancias de objeto"

Que quiere decir esto?
Como vimos antes en las pruebas en React usamos la libreia Jest y toEqual es unos de sus metodos, basicamente toEqual funciona para comparar valores primitivos en los objetos o sea comparar si dos objetos tienen las mismas propiedades (para string, numeros y booleans hay un metodo especifico) Se usa para valores no primitivos que ocupen un lugar especifico en memoria por ello esto siempre nos dara falso
{} === {}

En el ejemplo estoy evaluando que si el objeto tiene las mismas propiedades y los mismos valores

export const getUsuario = () => ({
  id: '123ABC',
  username: 'Rocky777',
});

import '@tesing-library/jest-dom';
import { getUsuario } from '../../src/1ejemplo.js';

describe('Prueba del archivo 1ejemplo.js ejemplo 1 ', () => {
  test('getUSuario  Debe de retornar un objeto', () => {
    const userTest = {
      id: '123ABC',
      username: 'Rocky777',
    };

    const user = getUsuario();
    expect(user).toEqual(userTest);
  });
}); 

">

Ejemplo toEqual para test en React


toEqual en un una funcion que envia un argumento


La pruebas deben ser faciles de leer y de escribir para obviamente sean faciles de mantener

En esta prueba probaremos una funcion que recibe un argumento (No varia mucho del ejemplo anterior)

export const getUsuarioActivo = (nombre) => ({
  id: '456ABC',
  username: nombre,
}); 

import '@tesing-library/jest-dom';
import { getUsuarioActivo } from '../../src/2ejemplo.js';

describe('Prueba en el archivo ejemplo.js ejemplo 2', () => {
  test('getUsuario debe retornar un objeto  ', () => {
    const nombre = 'Kevin';
    const user = getUsuarioActivo(nombre);

    expect(user).toEqual({
      id: '456ABC',
      username: nombre,
    });
  });
}); 

">

toBe para pruebas en React

Como usar toBe ?


Si necesitamos asegurarnos de que el valor devuelto sea igual a algo para booleans, strings, numeros funcionaria correctamente es muy similar al uso del triple igual en javascript vanila

No usar toBe en numeros de coma flotante (float en Pascal o otros lenguajes)

typeof en las pruebas se usa para verificar cual es el tipo de variable

Esta prueba es interesante ya que en un array probamos un string y un numero

export const retornaArreglo = () => {
  return ['ABC', 123];
};  
import '@tesing-library/jest-dom';
import { retornaArreglo } from '../../src/3ejemplo.js';
describe('Prueba en el archivo ejemplo.js ejemplo 3', () => {
  test('Debe de retornar un string y un numero ', () => {
    const [letras, numeros] = retornaArreglo();
    expect(letras).toBe('ABC');
    expect(letras).toBe('string');
    console.log(typeof numeros);
    expect(numeros).toBe(123);
    expect(numeros).toBe('number');
  });
});        

Todas las pruebas se pueden adjuntar en un solo archivo solo que para metodos didacticos se divide en varios tests