Проект представляет собой систему расчета скидок, которая позволяет применять различные стратегии скидок к ценам. Основная цель проекта — научиться работать с классами, методами, моками и тестированием в Jest.
Класс DiscountService
setDiscountStrategy(strategy): Устанавливает стратегию скидокgetFinalPrice(price): Возвращает цену с учетом скидкиgetDiscountHistory(): Возвращает историю всех примененных скидокclearHistory(): Очищает историю скидок
- Проверка корректного использования стратегии скидок
- Проверка выбрасывания ошибки, если стратегия не установлена
- Проверка сохранения истории скидок
- Проверка очистки истории
- Проверка работы с разными стратегиями
- Node.js
- Jest (моки, spy)
- Установите зависимости:
- Запустите тесты:
import { DiscountService } from "./discounts/DiscountService";
// Создаем экземпляр сервиса
const service = new DiscountService();
// Создаем стратегию скидок (пример)
const percentageDiscount = {
apply: (price) => price * 0.8, // 20% скидка
};
// Устанавливаем стратегию
service.setDiscountStrategy(percentageDiscount);
// Получаем цену со скидкой
const finalPrice = service.getFinalPrice(1000);
console.log(finalPrice); // 800
// Получаем историю скидок
const history = service.getDiscountHistory();
console.log(history); // [{ originalPrice: 1000, discountedPrice: 800 }]
// Очищаем историю
service.clearHistory();
console.log(service.getDiscountHistory()); // []- В примере показано, как создать экземпляр
DiscountService. - Установлена простая стратегия скидок, которая применяет 20% скидку.
- Продемонстрировано использование методов
getFinalPrice,getDiscountHistoryиclearHistory. - Пример помогает студентам понять, как использовать класс на практике.