Как выполнить модульное тестирование небезопасных целых чисел в Javascript? - PullRequest
0 голосов
/ 02 апреля 2019

Вот машинопись.

У меня есть функция (на самом деле угловая труба), которая преобразует количество дней в строку, например «1 день» или «2 дня», в зависимости от ввода.

transform(day: number): string {
  const result = /* here's a logic */;
  return result; // outputs smthg like '1 day' or '5 days'
}

Я пишу для него модульные тесты, и они не проходят, когда я пишу большие числа, такие как 12312512135351513.

У меня есть предположение, что речь идет о безопасных целочисленных пределах, и мой ввод переполняет его.

Итак, вопрос: как проверить функции, которые получают такие небезопасные целочисленные входные данные? Их результаты являются неожиданными.

Избегать небезопасных номеров - это решение, но хорошо ли это? Другой - получить число в виде строки, вырезать последнюю цифру и использовать ее, но API функции будет выглядеть странно.

1 Ответ

0 голосов
/ 02 апреля 2019

const testUpper = (num) => Number.MAX_SAFE_INTEGER > num

Базовый тест в javascript для действительно длинных чисел в js. Надеюсь, это поможет

...