Jest:测试数组的随机位置

时间:2014-12-22 03:44:46

标签: javascript unit-testing jestjs

经过一些研究,我发现 mock ing将允许我测试随机值。但是,如何测试在阵列(haystack)上拾取的随机位置(针)的值?

例如,如何使用 Jest 测试此代码?

var words = ['Hey', 'Hello', 'Hi'];
var random = Math.floor( Math.random() * (words.length - 1) + 0 );
var word = words[random];

2 个答案:

答案 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/)