2016-10-18 2 views
0

나는 (내가 "오래된 학교"방법을 선호, 당신이 원하는 unmock의 큰 팬이 아니에요)하는 jest.mock에스파이에 농담 모의

내가 해요이 방법을 스파이를 만들기 위해 노력하고있어 다음과 같은 시험을 갖는

jest.mock('node-fetch'); 
// ... 
it('should have called the fetch function wih the good const parameter and slug', done => { 
      const slug = 'slug'; 
      const stubDispatch =() => null; 
      const dispatcher = fetchRemote(slug); 
      dispatcher(stubDispatch).then(() => { 
       expect(???).toBeCalledWith(Constants + slug); 
       done(); 
      }); 
     }); 

을 그리고 이것은 내가 테스트 할 코드 (즉 완료되지 않은, 시험 구동) :

export const fetchRemote = slug => { 
    return dispatch => { 
     dispatch(loading()); 
     return fetch(Constants.URL + slug) 
    }; 
}; 

내 모의 구현 가져 오기 (사실 노드 - 인 가져 오기) :

export default() => Promise.resolve({json:() => []}); 

가짜는 잘 작동하며 일반적인 구현을 대체합니다.

내 주요 질문은, 어떻게 내가 그 조롱 된 기능에 대해 스파이 할 수 있을까요? 나는 그것이 좋은 매개 변수로 불려 졌음을 시험 할 필요가 있으며, 나는 그것을 어떻게 만드는지 절대 모릅니다. 테스트 구현에는 "???" 걱정하는 스파이를 만드는 방법을 모르겠습니다.

아이디어가 있으십니까? 당신 모의 구현

답변

3

, 당신은이

도움이

const fetchMock = require('node-fetch'); // this will get your mock implementation not the actual one 
... 
... 
expect(fetchMock).toBeCalledWith(Constants + slug); 

희망을해야 할 테스트 지금

const fetch = jest.fn(() => Promise.resolve({json:() => []})); 
module.exports = fetch; 

을 수행 할 수 있습니다

관련 문제