JavaScriptで、jestを使ってテストを書いています。
そこで本体コードの一部をモック化したいのですが、そのやり方を探しています。
下記のようにすれば一応はbar
をモック化できることが分かったのですが、これだとモック化する可能性を考えて本体コードを書かなければなりませんし、index.jsの中から呼ぶのにもexports.bar()
とexports
をつけなければならず、わずらわしいです。もっといいやり方はないものでしょうか?
↓本体コード(index.js)
exports.foo = function() { exports.bar(); } exports.bar = function() { console.log('元のbar'); }
↓テストコード( tests/index.test.js)
const index = require('../index'); test('barをモック化してfooを呼ぶ', ()=> { index.bar = function() { console.log('モック化成功'); } index.foo(); });
参考:
https://stackoverflow.com/questions/25649097/nodejs-override-a-function-in-a-module/25649271
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。