gpt4 book ai didi

javascript - 测试从 dob 计算年龄的函数

转载 作者:行者123 更新时间:2023-11-30 15:30:58 26 4
gpt4 key购买 nike

我有一个简单的 Javascript 函数;

  export default function getPupilAge(dob) {
let a = moment();
let b = moment(dob);
return a.diff(b, 'months');
};

我正在尝试编写测试(我正在使用 AVA)。

我想写一个测试说“给定一个返回 23 个月的日期”但是 let a = moment(); 总是今天的日期所以返回的月数会随着时间的推移而改变.

如何编写此测试或重构我的函数以实现可测试性?

最佳答案

您的函数似乎以月为单位计算年龄(它使用 moment() 中的 diff'months' 参数),因此您可以通过 moment().subtract(23, 'month'); 即当前日期减去 23 个月(参见 subtract 文档)。在这种情况下,getPupilAge 将始终为 23

这是一个活生生的例子:

function getPupilAge(dob) {
let a = moment();
let b = moment(dob);
return a.diff(b, 'months');
};

let dob = moment().subtract(23, 'month');
console.log(getPupilAge(dob));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.min.js"></script>

关于javascript - 测试从 dob 计算年龄的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42250987/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com