आप क्या कर सकते हैं Proxyquire या Rewire जैसी किसी चीज़ का उपयोग करें। मैं उदाहरण के लिए रिवायर का उपयोग करूँगा।
आपके कोड का स्निपेट जिसे आप स्टब करना चाहते हैं:
var redisClient = redis.createClient(redisPort, redisHost);
var someValue = redisClient.get("someKey");
return someValue;
फिर अपने परीक्षण में आप रीवायर का उपयोग कर सकते हैं:
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);
इस तरह आप अपने redisClient को बदल सकते हैं और यदि फ़ंक्शन को कॉल किया गया था तो आप जासूस से जांच सकते हैं।