这里我有一个函数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
as[[{label: "A", onClick: ()=>onBlockClick("A")},...]
因为函数引用会有所不同。
那么如何重构 generateBlocks 函数以使其可测试呢?