4
ここでは、配列blocks
と、関数onBlockClick
をとる関数generateBlocks
があります。各オブジェクトが2つのプロパティーを持つオブジェクトの配列label
とonClick
を返します。関数を返す関数をテストするには?
function generateBlocks(blocks, onBlockClick){
return blocks.map(block => (
{
label: block.label,
onClick:()=>onBlockClick(block.name)
}
))
}
私は戻り値がテストできません。関数のリファレンスが異なることになるので、私は[[{label: "A", onClick:()=>onBlockClick("A")},...]
としてexpected
を作成することはできません
const blocks = [{label: "A", name: "a"}, {label: "B", name: "b"}];
const onBlockClick = someFunction(){};
expect(generateBlocks(blocks, onBlockClick)).to.deep.equal(expected)
: は、ここでのテストケースです。
したがって、私はどのようにrefactor generateBlocks関数をテスト可能にするのですか?
あなたが取った最初のステップは、**「どうすればテストするのですか?」です**。あなたが自分自身に尋ねるべき次のことは** "ここで何をテストしたいのですか?" **です。既存のコードをリファクタリングして、実際にテストしたいことがわからない場合は、テスト可能にするのは難しいです。 – byxor
「deep.equal」は使用しないでください。すべてのオブジェクトに '.label'があり、' onclock() 'が' onBlockClick'のアイデンティティ関数を渡すときにその名前を返すということだけを主張してください。 – Bergi
@Brandonテストケースを参照してください** **私がテストしたいものは** **戻り値**です。 –