2017-07-26 5 views
-1
にテスト対象のモジュール/機能の依存関係をモック

のは、私は、例えば次のようにテストしたいとしましょう:Javascriptを

import {fetchResourceFromBackend} from './myfetch'; 

const fetchSomething = (dispatch) => { 

    dispatch(2); 

    return fetchResourceFromBackend('/api/abc').then(result => { 
    dispatch(3); 
    }); 
}; 

fetchResourceFromBackendは、いくつかの複雑な関数です。どのように私はこれをテストすることができますfetchResourceFromBackendコード(任意のパターンやツールの推奨、私はmochasinonを使用して達成することはできません)の影響を受けない?

fetchResourceFromBackendfetchSomethingへの引数として提供する唯一の方法はありますか? @Mikhailは、私はこのような解決提案として冗談を使用して

+2

jest:jest.mock( './ myfetch') 'https://facebook.github.io/jest/docs/manual-mocks.html –

+0

私は今試してみます。私が必要とするもののように。誰かがダウン投票した理由を知らない、私は質問が合法だと思う。 – croraf

+0

ありがとう!私はあなたの提案を使用し、それは正常に動作します。 – croraf

答えて

0

// test/something-test.js 

import {myFetch} from '../_mocks_/utilities'; 

jest.doMock('modules/utilities',() =>({ 
    myFetch: myFetch 
})); 


const {fetchSomething} = require('modules/something'); 

describe('#fetchSomething', ... 

ここfetchSomething'modules/utilities'からmyFetch機能上の内部依存性を持つテスト対象の関数です。私はmyFetchからその依存関係を嘲笑して'../_mocks_/utilities'にします。