2014-12-22 2 views
0

После некоторого исследования я узнал, что mock ing позволит мне проверить случайные значения. Однако, как я могу проверить значение случайной позиции (иглы), поднятой на массиве (стог сена)?Jest: Тестирование случайной позиции массива

Например, если вы проверили этот код на Jest?

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

Вы не можете иметь модульные тесты, в которых есть 'Math.random()'. Это означает, что тест может работать, иначе он может выйти из строя. Представьте себе простейший случай: 'assertTrue (Math.random()> 0.5);' – Halcyon

ответ

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/) 
0

Math.random() не позволяет установить начальное значение, это будет проблематично в случае тестирования (check here).

Возможно, вы захотите найти генератор случайных чисел, который может быть посеян. Это поможет вам получить повторяемый набор (по крайней мере для тестирования). Одна статья, которая может быть полезна, - here.