発端
React+Fluxのアプリのテストをするのに、requireのモックが必要だった。 だけどJest使いたくない。
そこでこれを使う。
簡単な使い方
something.js
module.exports = 'music';
love.js
var something = require('./something.js'); console.log('I love ' + something + '!');
index.js
var proxyquire = require('proxyquire'); require('./love.js');// => I love music! proxyquire('./love.js', { './something.js': 'shit' });// => I love shit!
require('./something.js');
をモックして何でも言わせちゃう。
ユニットテスト用途には十分
requireで指定する文字列の曖昧さを許容しないのがちょっと微妙だけど、ユニットテストに使う分にはまぁ問題にはならない。
呼ばれた回数をカウントしたり色々したい場合は、Sinon.jsを使うのが便利。