Was Sie tun könnten, ist etwas wie Proxyquire oder Rewire zu verwenden. Ich werde für das Beispiel rewire verwenden.
Ihr Codeausschnitt, den Sie stubben möchten:
var redisClient = redis.createClient(redisPort, redisHost);
var someValue = redisClient.get("someKey");
return someValue;
Dann können Sie in Ihrem Test rewire:
verwendenvar Rewire = require('rewire');
var myModule = Rewire("../your/module/to/test.js");
var redisMock = {
get: sinon.spy(function(something){
return "someValue";
});
};
myModule.__set__('redisClient', redisMock);
Auf diese Weise können Sie Ihren redisClient ersetzen lassen und mit dem Spion überprüfen, ob die Funktion aufgerufen wurde.