我正在编写一套 Jest 测试,出现了以下问题。如何测试函数在收到无效参数时是否简单返回?例如,我想测试下面的函数
changeAge
如果收到不是整数的 newAge
或 id
是否会立即返回。
function changeAge (id, newAge) {
const isWholeNumber = num => Number.isInteger(newAge) && newAge >= 0
if (!isWholeNumber(id) || !isWholeNumber(newAge)) {
return
}
const person = getPerson(id)
person.age = newAge
}
在此示例中,测试中无法检索人员数据来验证年龄属性是否已更改。
您的函数称为
changeAge
。它不叫changeAgePerhaps
🙂。
如果函数无法执行其所宣传的功能,则应抛出错误(或返回指示成功/错误的
Result
类型)。
接受错误并假装一切正常,你就是在为消费者埋下麻烦。现在已经不清楚调用是否成功了。
如果您发现很难测试它在理想条件下是否有效,您的消费者也会面临这个困难。
IMO 是时候重新考虑这是否真的是你想要的方式了。