Med sinon kan du sætte en mock eller stub rundt om et helt modul. Antag for eksempel mysql
modul har en funktion query
:
var mock;
mock = sinon.mock(require('mysql'))
mock.expects('query').with(queryString, queryParams).yields(null, rows);
queryString
, queryParams
er det input, du forventer. rows
er det output, du forventer.
Når din klasse under test nu kræver mysql og kalder query
metode, vil den blive opsnappet og verificeret af sinon.
I dit testforventningsafsnit skal du have:
mock.verify()
og i din deardown bør du gendanne mysql tilbage til normal funktionalitet:
mock.restore()