2016-09-23 10 views
-2

は、ここで私はテストにまだかなり新しいよ私の方法試験には初めて、このメソッドをMocha、Chai、Enzyme、およびSinonでどのようにテストしますか?

handleKeyEvent(event) { 
    const code = event.keyCode; 

    if (UsedKeys.includes(code)) { 
     event.preventDefault(); 

     if (code === KeyCodes.DOWN) { 
     this.modifyIndexBy(1); 
     } else if (code === KeyCodes.UP) { 
     this.modifyIndexBy(-1); 
     } 
    } 
    } 

だ、と私は、私はこの作品をテストするに取り掛かるだろうか見当がつかない。 このメソッドはイベントを受け取るので、イベントオブジェクトを合成して渡す必要がありますか?

その後、どういうわけかthis.modifyIndexBy()が呼び出されることをテストしますか?

このメソッドは何も返しません。コードをよりテスト可能に変更しますか?

答えて

0

これを行う方法はいくつかあります。

  • あなたは、オブジェクトを作成し、handleKeyDownが与えられたパラメータで呼び出されたとき、それが呼び出されていることを確認するためにmodifyRowIndexByをスパイできます。
  • 彼らは独立してテストすることができるように、あなたの「インデックスの変更」から、あなたのキー処理を分けることができ(あなたがテストしている同じオブジェクトをスパイするために悪い習慣です)
  • modifyIndexByは実際にを何をしますか? の結果がと同じであることをテストすることができます(したがって、実際にはmodifyIndexByが呼び出されたことはテストされませんが、modifyIndexByは実行する必要があります)。これは、より多くのアプローチであるBDDです。
+0

私たち[チャットでこの議論を続ける](http://chat.stackoverflow.com/rooms/124048/discussion-between-james-monger-and-brandon-sturgeon)。 –