¡Estoy tratando de probar un código en el que la clase tiene un constructor que toma un objeto SQSClient que se usa para sacar mensajes de una cola sqs! ¡Sorpresa! Cosas muy simples. Así que quiero simular el cliente para poder escribir algunas pruebas unitarias alrededor del código sin llamar a la cola. Estoy tratando de modelar mi código a partir de ejemplos aquí:
https://www.npmjs.com/package/aws-sdk-client-mock
En mi prueba de unidad, simplemente creo el cliente simulado e intento pasarlo a mi clase:
const sqsMockClient = mockClient(SQSClient); sqsMockClient.onAnyCommand().resolves({}); const blClass: BLClass = new BLClass(sqsMockClient);Esto no se ejecutará, la salida de la prueba dice que el tipo no se puede asignar al parámetro del tipo 'SQSClient' porque no es un SQSClient real. Si creo una instancia de un SQSClient real y lo paso, se ejecutará pero intentará llegar a la cola y extraer los mensajes. Quiero construir el simulacro anterior para devolver un mensaje estático con fines de prueba unitaria.
¿Alguna idea de lo que podría hacer de manera diferente para permitir que el simulacro funcione?
Esto funcionó para mí:
const sqsClient = new SQSClient({}); const sqsMockClient = mockClient(sqsClient); sqsMockClient.onAnyCommand().resolves({}); const blClass: BLClass = new BLClass(sqsClient);