首页 > 解决方案 > 如何在 Javascript 中对不安全的整数进行单元测试?

问题描述

这是打字稿。

我有一个函数(实际上是角管道)将天数转换为字符串,如“1 天”或“2 天”取决于输入。

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

我为它编写单元测试,当我编写像 12312512135351513 这样的超大数字时它们没有通过。

我建议它是关于安全整数限制的,我的输入会溢出它。

所以问题是:如何测试接收这种不安全整数输入的函数? 他们的输出是出乎意料的。

避免不安全的数字是一种解决方案,但它是一个好的解决方案吗?另一种是获取数字作为字符串,切掉最后一位并使用它,但是函数的API看起来会很奇怪。

标签: javascriptintegerroundinginteger-overflow

解决方案


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

javascript 中对 js 中非常长的数字的基本测试。希望这可以帮助


推荐阅读