Wat je zou kunnen doen is iets als Proxyquire of Rewire gebruiken. Ik gebruik rewire als voorbeeld.
Uw codefragment dat u wilt afstompen:
var redisClient = redis.createClient(redisPort, redisHost);
var someValue = redisClient.get("someKey");
return someValue;
Dan kun je in je test rewire gebruiken:
var Rewire = require('rewire');
var myModule = Rewire("../your/module/to/test.js");
var redisMock = {
get: sinon.spy(function(something){
return "someValue";
});
};
myModule.__set__('redisClient', redisMock);
Op deze manier kunt u uw redisClient laten vervangen en kunt u bij de spion controleren of de functie is aangeroepen.