2016-09-14 7 views
1

를 반환하지 않는 조롱 때 테스트 내부 모의 결과 세트농담 설명서 모의 15.1.1에 upgraing 후 I는 농담 설명서 조롱에 문제가 올바른 값

(반응 15.3.1이다) 메서드는 실제 결과가 예상 된 것이 아니라 변수가 만들어 졌을 때의 초기 결과라고합니다.

내가 반응하고 농담을하기 전에 그것은 잘 작동하고있었습니다. 여기

'use strict'; 
 

 
const psMock = jest.genMockFromModule('../ProcessService'); 
 
import clone from 'lodash/clone' 
 

 
var _resultDeOuf = []; 
 

 
function __setMockResult(result) { 
 
    _resultDeOuf = result; 
 
} 
 

 
psMock.getRelatedProcessesByGroupingId = jest.fn(() => { 
 
    return { 
 
     then: (callback) => callback(_resultDeOuf); 
 
    } 
 
}); 
 

 
psMock.__setMockResult = __setMockResult; 
 

 
export default psMock`
내 테스트입니다 : 여기

내 모의의

jest.unmock('../SuperProcessRow'); 
 
jest.unmock('../ProcessRow'); 
 

 
import React from "react"; 
 
import ReactDom from "react-dom"; 
 
import TestUtils from "react-addons-test-utils"; 
 
import processService from 'ProcessService' 
 

 
import SuperProcessRow from '../SuperProcessRow' 
 

 
const defaultSuperProcess = { 
 
    "processId": "97816", 
 
    "executionId": null, 
 
    "cancelExecutionId": null 
 
} 
 

 
describe('SuperProcessRow',() => { 
 

 
    beforeEach(() => { 
 
     processService.getRelatedProcessesByGroupingId.mockClear() 
 
    }); 
 

 
    it('load sub processes on super process click ',() => { 
 

 
     let responseSubProcesses = { 
 
      processes : subProcesses, 
 
      totalCount : 5 
 
     }; 
 

 
     processService.__setMockResult(responseSubProcesses); 
 

 
     let superProcessRow = TestUtils.renderIntoDocument(
 
     <table><SuperProcessRow process={defaultSuperProcess}/></table>); 
 

 
     superProcessRow = ReactDom.findDOMNode(superProcessRow); 
 

 
     let icon = superProcessRow.querySelector('i'); 
 
     TestUtils.Simulate.click(icon); 
 

 
     expect(processService.getRelatedProcessesByGroupingId.mock.calls.length).toEqual(1); 
 
    }) 
 
});
그리고 실제 생산 코드에서 나는 하 getRelatedProcessGroupingId를 호출하면 .then 메서드 내에서 응답을 처리합니다. 그리고 테스트에서 설정 한 데이터를 검색하는 대신 초기 값 : []을 얻었습니다.

누군가가 아이디어를 가지고 있습니까?

는 빈센트

+0

'_resultDeOuf'는 배열입니다. 그래서'result'를'result'에 할당하는 대신'_resultDeOuf'를'push'한다고합니다. – grgmo

+0

실제로이 모의에서는 배열을 반환하지 않습니다. –

답변

1

내가 윈도우 객체의 내부 _resultDeOuf 설정하여 고정 감사드립니다. 그것은 못생긴지만 작동합니다