2017-01-12 9 views
1

の実行:だから私は、モック関数を書いた小道具として、それを渡されたと私は状態をテストすると考えましたし、あれば冗談酵素reactJSは - 方法は私がテストしたい以下の方法持っているにかかわらず、戻り

handleDayClick(e, day, {disabled}) { 
     if (disabled) { 
      // Do not update the state if the day is disabled 
      return; 
     } 
     this.setState({ selectedDay: day }); 
     this.props.dateClick(day); 
    }; 

を関数が呼び出されます:

it('handleDayClick() should NOT set state.selectedDay, call props.dateClick when disabled',() => { 
    let mockDateClick = jest.fn(); 
    const sidebar = shallow(<Sidebar dateClick={mockDateClick}/>); 
    let e = 'whatever'; 
    let day = 'tomorrow'; 

    sidebar.instance().handleDayClick(e, day, true); 
    expect(sidebar.state().selectedDay).toBe(undefined); 
    expect(mockDateClick).toNotHaveBeenCalled(); 
    }); 

明日は状態()。選択日が設定されています。メソッドを呼び出す前の値は2017-01-12T18:18:13.216Zなので、メソッドがレンダリング関数で終了しないことは間違いありません。

私は間違っていますか?あなたのテストで

答えて

0

は、あなたがやっている:将来的にはsidebar.instance().handleDayClick(e, day, { disabled: true });

あなたを:sidebar.instance().handleDayClick(e, day, true);

をhandleDayClickがdisabledキー

handleDayClick(e, day, {disabled}) { 
} 

でオブジェクトを構造化代入されながら、このようにそれを呼び出すようにしてくださいエラーを防ぐためにフローのようなツールを使用したい場合があります。https://flowtype.org/docs/react.html

handleDayClick(e: {}, day: string, {disabled}: boolean) { 
} 
このようなことを行うことで、以前にそれを検出できました。
関連する問題