sinon.jsのstub()とsandbox()を用いたstub作成例
プロジェクトでAAAというライブラリを用いているけれど、そのAAAのインタフェースのstubでテストをしたい場合の話。AAA-mockとかプロジェクトを作って、下記のような感じですげかえる。
var AAA-mock = function(AAA, sandbox) { this.aaa = AAA this.initData(); if (sandbox) { this.initStubs(sandbox); } }); AAA-mock.prototype.initStubs = function(sandbox) { var that = this; if (!sandbox) { sandbox = sinon.sandbox.create(); } sandbox.stub(hogehoge, '_get', ... // do something. }
stubを使わない場合はrestore()しちゃえば元のAAAの動きにもなる。