es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Pruebas unitarias Jest para Cron

// Cómo escribir casos de prueba unitarios para la siguiente tarea cron

index.js

import cron from ‘node-cron’
export const cronJob = cron.schedule(pattern, async() => {
// hacer algo
}

index.spec.js

import { cron } from ‘node-cron’;
import {cronJob} from ‘.’;
jest.mock(‘node-cron’, () => {
return {
schedule: jest.fn(),
};
});
describe(“Ejecutar tarea cron”, async() => {
await cronJob.start()
await cronJob.destroy()
}

Este código anterior no está cubierto por la TC. Necesito ayuda, gracias. La TC no cubre el 0% del código y no sé por qué.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para escribir pruebas unitarias para el trabajo cron dado usando Jest, siga los siguientes pasos:

    1. Importe los módulos necesarios en el archivo de prueba, index.spec.js
    import { cronJob } from './index';
    import cron from 'node-cron';
    jest.mock('node-cron');
    
    1. Escriba la prueba para verificar si el cronJob se inicia y destruye con éxito al simular el método cron.schedule().
    describe('Cron Job Test', () => {
      test('Test if cron job starts and destroys successfully', () => {  
        cron.schedule.mockReturnValueOnce({ start: jest.fn(), destroy: jest.fn() });  
        cronJob();  
        expect(cron.schedule).toHaveBeenCalled();  
        expect(cron.schedule).toHaveBeenCalledWith("pattern", expect.any(Function));  
        expect(cron.schedule().start).toHaveBeenCalled();  
        cronJob.destroy();  
        expect(cron.schedule().destroy).toHaveBeenCalled();  
      });  
    });
    
    1. Ejecute la prueba usando el comando ‘npm test’.

    Con la prueba anterior, el cronJob se iniciará y destruirá dentro de la prueba, asegurando que el código esté cubierto por pruebas.

Comments are closed.