Как проверить функцию, которая возвращает функции?
Здесь у меня есть функция generateBlocks
который принимает в массиве blocks
и функция onBlockClick
, Возвращает массив объектов, где каждый объект имеет два свойства label
а также onClick
,
function generateBlocks(blocks, onBlockClick){
return blocks.map(block => (
{
label: block.label,
onClick: ()=>onBlockClick(block.name)
}
))
}
Я не могу проверить это возвращаемое значение. Вот контрольный пример:
const blocks = [{label: "A", name: "a"}, {label: "B", name: "b"}];
const onBlockClick = someFunction(){};
expect(generateBlocks(blocks, onBlockClick)).to.deep.equal(expected)
Я не могу создать expected
как [[{label: "A", onClick: ()=>onBlockClick("A")},...]
потому что ссылка на функцию будет отличаться.
Итак, как мне сделать рефакторинг функции generateBlocks, чтобы сделать его тестируемым?
1 ответ
Вы можете использовать метод.toString() для функции ref и сравнить с ожидаемым результатом строки.