2016-11-08 16 views

答えて

3

You are looking for Proxyquire :)

//file1 
var get = require('simple-get'); 
var assert = require('assert'); 

module.exports = function fetch (callback) { 
    get('https://api/users', callback); 
}; 

//test file 
var proxyquire = require('proxyquire'); 
var fakeResponse = {status:200}; 
var fetch = proxyquire('./get', { 
    'simple-get': function (url, callback) { 
    process.nextTick(function() { 
     callback(null, fakeResponse) 
    }) 
    } 
}); 

fetch(function (err, res) { 
    assert(res.statusCode, 200) 
}); 

+0

感謝。私の答えを修正しました。 –

0

はい、入力のための冗談で例えば=>https://facebook.github.io/jest/

// require model to be mocked 
const Mail = require('models/mail'); 

describe('test ',() => { 

    // mock send function 
    Mail.send = jest.fn(() => Promise.resolve()); 

    // clear mock after each test 
    afterEach(() => Mail.send.mockClear()); 

    // unmock function 
    afterAll(() => jest.unmock(Mail.send)); 

    it('',() => 
     somefunction().then(() => { 
      // catch params passed to Mail.send triggered by somefunction() 
      const param = Mail.send.mock.calls[0][0]; 
     }) 
    ); 
}); 
+0

このような小さなユースケースでは、フレームワークを示唆するのが少しだと思いませんか? :) –

+1

はい、おそらくあなたは正しいです:) – baar

+0

しかし、私はあなたのenthousiasmを理解することができます。冗談は素晴らしいです。 –