ここに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 関数をリファクタリングしてテスト可能にするにはどうすればよいでしょうか。