Vamos a ver un caso hipotético echándole mucha imaginación, pero lo importante no es el caso, sino cómo se resuelve. Vamos a volvernos muy locos con la imaginación. Imagina que entras nuevo a un proyecto y te recibes un mensaje por el canal del chat. — Hola, ¿tienes experiencia escribiendo tests? Y tú que acabas de entrar, quieres causar buena impresión y recuerdas que una vez hiciste el FizzBuzz kata en un curso, te vienes arriba y dices: — Claro, ¿qué necesitáis? Y te responden: — Verás, tenemos una API en NestJS y queremos empezar a meter tests. ¿Puedes echarle un ojo y empezar a crear algunos tests? Y rematas con: — Claro, me pongo con ello. Empieza la fiesta. Tú que no has creado un test serio en tu vida, te vas a la documentación de NestJS y acabas en la sección de testing. Bajas un poquito el texto del principio que no te terminas de leer, porque tiene más de 5 líneas, y el primer trozo de código que te encuentras es esto: import { CatsController } from './cats.controller';
import { CatsService } from './cats.service';
describe('CatsController', () => {
let catsController: CatsController;
let catsService: CatsService;
beforeEach(() => {
catsService = new CatsService();
catsController = new CatsController(catsService);
});
describe('findAll', () => {
it('should return an array of cats', async () => {
const result = ['test'];
jest.spyOn(catsService, 'findAll').mockImplementation(() => result);
expect(await catsController.findAll()).toBe(result);
});
});
});
Así que empiezas a replicar este test. ¿Qué puede salir mal? Todo. Y es que la peor forma de escribir tests para cualquier proyecto es seguir la documentación de la librería que estés usando. Ellos te quieren vender su moto, es normal. Lo que no es normal es tú la compres. La mejor forma que he aprendido de escribir tests, por ejemplo, de una API Rest es todo lo contrario de lo que puedes ver en cualquier documentación de una librería o framework. Te enseño esta forma de escribir tests en mi master class de Testing Basado en Pilares. Una vez termines la master class, tendrás muy claro porque el código de arriba solo te va a traer problemas. Master Class - Testing Basado en Pilares Pd: La master class estará disponible hasta el 14 de febrero. Al día siguiente quitaré la master class de la venta y enviaré el audio respondiendo a las dudas que he recopilado de alumnos. Un audio que no volveré a mandar. Pd2: Si te gustan mis emails, habla bien y comparte xurxodev.com para que otros lo disfruten. Pd3: Si no te gustan mis emails, habla mal y comparte xurxodev.com para evitar que otros lo sufran.
|