【发布时间】:2020-03-18 08:17:47
【问题描述】:
当我想测试错误消息的输出时,我还没有理解期望 curried 函数的背后原因。如果它是return 值,则直接调用该函数会导致在.toBe 中正确测试该值
function calculateMedian({numbers}) {
if (Array.isArray(numbers) && numbers.length === 0) {
throw new Error('Cannot calcuate median without any numbers');
}
}
但是,如果我在没有匿名函数的情况下测试以下片段,则测试将失败。背后的原因是什么?
通过测试
it('should throw an error when given an empty array', () => {
expect(() =>
calculateMedian({
numbers: [],
}),
).toThrow('Cannot calcuate median without any numbers');
});
未通过测试
it('should throw an error when given an empty array', () => {
expect(calculateMedian({numbers: []})
).toThrow('Cannot calcuate median without any numbers');
});
【问题讨论】: