内部为随机函数的单元测试。Javascript

内部为随机函数的单元测试。Javascript,javascript,unit-testing,ecmascript-6,jestjs,Javascript,Unit Testing,Ecmascript 6,Jestjs,我有这个随机函数。如何为此创建单元测试?(必须开玩笑) 由于函数的结果是随机的,因此无法预测正确答案。但您可以设置可接受值的间隔(范围)。就这样, test('get random number in range [0, 20]', () => { const result = random(); expect(result).toBeGreaterThanOrEqual(0); expect(result).toBeLessThanOrEqual(20); });

我有这个随机函数。如何为此创建单元测试?(必须开玩笑)


由于函数的结果是随机的,因此无法预测正确答案。但您可以设置可接受值的间隔(范围)。就这样,

test('get random number in range [0, 20]', () => {
    const result = random();
    expect(result).toBeGreaterThanOrEqual(0);
    expect(result).toBeLessThanOrEqual(20);
});

您可以简单地模拟
Math.random
,如下所示:

global.Math.random = () => 1
因此,
random([{change\u percent:2,volume:2,price:2,change}])
将为您提供一个易于测试的结果

请注意,由于所有测试都是独立运行的,因此覆盖
数学。随机
不会干扰其他测试

global.Math.random = () => 1