
目次
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');
// => 失敗


