目次
Sinon.jsとは
Sinon.jsとはJavaScriptでテストダブル(テストの代役)を実現するライブラリ。使用するにはnode.jsとSinon.jsが必要。
まずSinon.jsを下記のコマンドでインストールする。
$ npm i sinon
インストールが完了したらs.jsのような適当なJavaScriptを作成してrequire記述してで読み込む。
const sinon = require('sinon');
実行は $ node s.js
Sinon.jsのstubについて
Sinon.jsのstubは事前にプログラムされた動作をする機能。
例えば以下のようにstub.returns(7)と記述すればstub()を実行したときに7を返す。
const stub = require('sinon').stub(); stub.returns(7); console.log(stub()); // => 7
callback.withArgsで引数受取時の動作を設定
const stub = require('sinon').stub(); stub.withArgs('lucky').returns(7); console.log(stub('lucky')); // => 7 console.log(stub('bad')); // => undefined
returnsArgで何番目の引数を返すか設定
const stub = require('sinon').stub(); // 2番目(index:1)の引数を返す stub.returnsArg(1); console.log(stub('foo', 'bar')); // => bar
callsArgWithで引数に関数を設定
const stub = require('sinon').stub(); const add = (a, b) => console.log(a + b); // 2番目(index:1)の引数の関数に3,4の引数を渡す stub.callsArgWith(1, 3, 4); stub('foo', add); // => 7
yieldsで最初に受け取った関数に引数を渡す
const stub = require('sinon').stub(); const add = (a, b) => console.log(a + b); // 最初に受け取った関数に引数を渡す stub.yields(2, 3); stub(add); // => 5
yieldToでオブジェクト関数を操作
const stub = require('sinon').stub(); stub({ success() { console.log('成功'); }, fail() { console.log('失敗'); } }); stub.yieldTo('fail'); // => 失敗