Pruebas con Jest para una calculadora de descuentos
Los desarrolladores obtienen al instante pruebas de Jest con cobertura completa, incluidos los casos límite y de error, en lugar de escribir código repetitivo a mano.
Ver vista previa de entrada y salida
Entrada
- Code To Test
- function calculateDiscount(price, userTier, couponCode) { let discount = 0; if (userTier === 'gold') discount += 0.15; else if (userTier === 'silver') discount += 0.10; if (couponCode === 'SAVE20') discount += 0.20; if (discount > 0.5) discount = 0.5; if (price < 0) throw new Error('Price cannot be negative'); return +(price * (1 - discount)).toFixed(2); }
- Language
- javascript
- Framework
- jest
- Coverage Focus
- full-coverage
- Test Style
- aaa
Salida (extracto)
describe('calculateDiscount', () => {
it('aplica el descuento del nivel gold', () => {
// Preparar
const price = 100;
// Actuar
const result = calculateDiscount(price, 'gold', null);
// Comprobar
expect(result).toBe(85);
});
it('limita el descuento total al 50%', () => {
expect(calculateDiscount(100, 'gold', 'SAVE20')).toBe(65);
});
it('lanza un error con precio negativo', () => {
expect(() => calculateDiscount(-5, 'gold', null)).toThrow('Price cannot be negative');
});
});