经过一些研究,我发现 mock ing将允许我测试随机值。但是,如何测试在阵列(haystack)上拾取的随机位置(针)的值?
例如,如何使用 Jest 测试此代码?
var words = ['Hey', 'Hello', 'Hi'];
var random = Math.floor( Math.random() * (words.length - 1) + 0 );
var word = words[random];
答案 0 :(得分:0)
Math.random()
不允许您设置种子值,这在测试时会出现问题(check here)。
您可能想要查找可以播种的随机数生成器。这将帮助您获得可重复的集合(至少用于测试)。一篇可能有用的文章是here。
答案 1 :(得分:0)
虽然这并不一定要针对Math.random
进行测试,但在这种情况下,我认为可以通过简单地检查值来测试。
function pick(words) {
var random = Math.floor( Math.random() * (words.length - 1) + 0 );
return words[random];
}
expect(pick(['Hey', 'Hello', 'Hi'])).toMatch(/Hey|Hello|Hi/)