kidoOooOoooOOom

IT系で開発やってます

sinon.jsとかいうやつ

テストで便利なライブラリ。spy(), stub(), mock(), sandbox()などが提供されている。
この中のsandboxからのrestore()の動きが最初よく分からずにハマった。
mochaのbeforeEachでsanboxを確保してから各メソッドのstubを作っておいて、各テストにおいてstubを使わない場合はresotre()してからメソッドを呼び出すというテクニックを今日見かけた。

http://www.htmlhifive.com/conts/web/view/library/sinonjs#HSandbox

Sandboxを使用すると、restoreとverifyの呼び出しが簡略化されます。
また、グローバルにアクセス可能なfakeXHR、fakeTimerやStubを使用している場合は、Sandboxを使用することでクリーンアップが容易になります。