Skip to end of metadata
Go to start of metadata


Интерфейс тестирования логики начислений


Система тестирует логику начислений

Загрузка теста с файлом условий

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/
  • No labels