Apa yang dapat Anda lakukan adalah menggunakan sesuatu seperti Proxyquire atau Rewire. Saya akan menggunakan rewire sebagai contoh.
Cuplikan kode yang ingin Anda stub:
var redisClient = redis.createClient(redisPort, redisHost);
var someValue = redisClient.get("someKey");
return someValue;
Kemudian dalam pengujian Anda, Anda dapat menggunakan 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);
Dengan cara ini Anda dapat mengganti redisClient Anda dan Anda dapat memeriksa dengan mata-mata jika fungsi tersebut dipanggil.