Интерфейс тестирования логики начислений
Система тестирует логику начислений
Загрузка теста с файлом условий
cd /usr/abills/Abills/modules/t perl Service.t TESTS=Services/02_abon.json 1..13 ok 1 - [1] DAYS: 16 Period: 2025-05-05 - 2025-05-20 #^^^^ тест прошел успешно количество дней совпало с ожидаемыми # 25 2025-05-05 - 2025-05-20 Discount 50 ok 2 - [1] SUM: 258.06 Period: 2025-05-05 - 2025-05-20 #^^^^ тест прошел успешно возвращаемая сума совпала с ожидаемой # 25 2025-05-05 - 2025-05-20 Discount 50 # Looks like you planned 13 tests but ran 2.
Файл условий:
В файле указаны условия настройки тарифно модели для сервиса
и также предполагаемый результат (Предполагаемый результат можно указывать цифрами или писать выполняемый perl код).
Services/02_abon.json
[ { "COMMENTS": "25 2025-05-05 - 2025-05-20 Discount 50", // коментарий "REQUEST": { // Запрос "TP_INFO": { // Информация о тарифном плане "PRICE": 1000, // Сума тарифного плана "PERIOD": 1, // Период тарификации 0 - день, 1 - месяц "PERIOD_ALIGNMENT": 1, // Выравнивание периода включено "PAYMENT_TYPE": 1 // Тип начисления 0 - предоплата, 1 - послеоплата }, "SERVICE_ACTIVATE": "2025-05-05", // дата начала начислений "END_DATE": "2025-05-20", // дата завершения начислений "DISCOUNT" : "50" // скидка в процентах }, "RESULT": { // результирующая структура "SUM": "sprintf('%.2f', (1000 / 31 * 16) * 0.5)", // Ожидаемая сумма начислений "DAYS": 16 // количество расчетных дней } } ]
Также можно запуска тесты указывая каталог с тестами
perl Service.t TESTS=Services/