2017-12-29 28 views
0

나는 스냅 샷 테스트를하고 있으며, 임의로 생성 된 다른 시간과 ID로 인해 false가 실패합니다. 그래서, 어떻게 테스트에서 그 부분을 무시 못하거나 여기 그들을 조롱 시험에 의해 주어진 몇 가지 오류가 있습니다 : 이것은 코드의 부분움직이는 부분을 조롱하는 방법 - 스냅 샷 테스트 - 반응

<span> 
    -   Today at 10:21 AM 
    +   Today at 12:34 PM 
       </span> 

<input 
       disabled={false} 
    -   id="undefined-Search-undefined-24783" 
    +   id="undefined-Search-undefined-63537" 
       onBlur={[Function]} 
       onChange={[Function]} 
       onFocus={[Function]} 

인 시간을 출력한다

<p style={profileStyle}> 
       <span> 
       {moment(). 
        subtract(20, 'm'). 
        calendar()} 
       </span> 

,321 0

이 하나는 ID의가 무작위로 생성

<TextField 
       hintText="Search" 
       fullWidth 
      /> 

여기

test('renders correctly',() => { 
    const component = renderer.create(<MuiThemeProvider muiTheme={getMuiTheme()}> 
    <CheckinHistory/></MuiThemeProvider>); 
    const tree = component.toJSON(); 

    console.log('tree is : ', tree); 
    expect(tree).toMatchSnapshot(); 
}); 

나는이

moment().subtract(20, 'm').calendar() = jest.fn() 

를 사용하여 모의 시도 내 테스트 코드입니다하지만 린터 오류를 제공하고 출력 그것 doesnt는 역시 정확하게 보인다. 그래서, 내가 어디로 잘못 가고 있니?

답변

0

여기에는 관심사를 구분하는 부분이 유용합니다.

UI 구성 요소를 소품으로 계산 결과 만 받고 상위 구성 요소를 사용하여 계산을 수행하면 UI 구성 요소에서 스냅 샷 테스트를 수행하여 변경을 중지하고 기능을 별도로 테스트 할 수 있습니다.

+0

음, 음. 다른 아이디어? – faraz

+0

움직이는 부분을 모두 조롱하면 아주 부서지기 쉬운 테스트를 얻을 수 있으며 작성하는 것이 훨씬 복잡해집니다. 이제 물건을 분리하면 인생이 훨씬 쉬워 질 것입니다. – Kraylog

+0

ok, TextField가 생성하는 임의의 ID는 어떻게됩니까? 그것은 물질적 인 것이고 나는 그 구성 요소와 분리 할 수 ​​없습니다. 그게 어떨까요? – faraz