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.

¿De dónde proviene este error en mi prueba unitaria del controlador de NestJs?

Estoy tratando de escribir un caso de prueba para mi controlador, pero solo obtengo el mismo error una y otra vez. – Ya escribí mi caso de prueba para el servicio y funciona bien.

A continuación, proporcionaré mi código desde mi: ticket.controller.spec.ts

“` import { Test, TestingModule } from ‘@nestjs/testing’;

import { TicketController } from ‘./ticket.controller’;
import { TicketService } from ‘../services/ticket.service’;
import { CreateTicketDto } from ‘src/dto/create-ticket.dto’;

describe(‘TicketService’, () => {
let ticketsControler = TicketController;
let spyService = TicketService;
beforeAll(async () => {
const ApiServiceProvider = {
provide: TicketService,
useFactory: () => ({
createTicket: jest.fn(() => []),
findAll: jest.fn(() => []),
findByCreator: jest.fn(() => {}),
findById: jest.fn(() => {}),
updateTicket: jest.fn(() => []),
deleteTicket: jest.fn(() => []),
update: jest.fn(() => []),
}),
};

const module: TestingModule = await Test.createTestingModule({
controllers: [TicketController],
providers: [TicketService, ApiServiceProvider],
}).compile();

ticketsControler = module.get(TicketController);
spyService = module.get(TicketService);

});


it('llamando a createTicket', () => { const dto = new CreateTicketDto(); expect(TicketController.createTicket(dto)).not.toEqual(null); }); });

Y ese es el error que estoy obteniendo todo el tiempo =>

linea 29 y 30
Property ‘prototype’ is missing in type ‘TicketController’ but required in type ‘typeof TicketController’.

También estoy obteniendo este error en la línea 35, pero supongo que esto depende del problema anterior.
Property ‘createTicket’ does not exist on type ‘typeof TicketController’.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error indica que hay un problema con el tipo de TicketController. Específicamente, falta la propiedad prototype, que es necesaria para ese tipo. El error en la línea 35 está relacionado con este problema, ya que sugiere que el método createTicket no es reconocido como parte del tipo TicketController.

    Una posible solución a este problema es asegurarse de que la clase TicketController se exporte correctamente y tenga el tipo correcto. Puede ser útil revisar las declaraciones de importación y asegurarse de que se estén referenciando los módulos correctos.

    Otro problema potencial podría estar relacionado con el propio marco de pruebas. Puede ser necesario actualizar las versiones de los paquetes de pruebas o configurar el entorno de prueba de una manera diferente.

    En general, solucionar este problema puede requerir una investigación y experimentación adicionales. Puede ser útil revisar la documentación de las herramientas y marcos relevantes, o buscar ayuda de otros desarrolladores con experiencia en TypeScript y pruebas unitarias.

Comments are closed.