Ce que vous pourriez faire, c'est utiliser quelque chose comme Proxyquire ou Rewire. Je vais utiliser rewire pour l'exemple.
L'extrait de code que vous souhaitez remplacer :
var redisClient = redis.createClient(redisPort, redisHost);
var someValue = redisClient.get("someKey");
return someValue;
Ensuite, dans votre test, vous pouvez utiliser rewire :
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);
De cette façon, vous pouvez faire remplacer votre redisClient et vous pouvez vérifier avec l'espion si la fonction a été appelée.