ここにgenerateBlocks、配列blocksと関数を受け取る関数がありますonBlockClick。各オブジェクトが と の 2 つのプロパティ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 関数をリファクタリングしてテスト可能にするにはどうすればよいでしょうか。