2017-05-11 15 views
3

JestとEnzymeを使用してReactチェックボックスコンポーネントをテストしています。イベントオブジェクトを酵素に渡す.simulate

これは私のテストで:

it('triggers checkbox onChange event',() => { 
    const configs = { 
    default: true, 
    label: 'My Label', 
    element: 'myElement', 
    } 
    const checkbox = shallow(
    <CheckBox 
     configs={configs} 
    /> 
) 
    checkbox.find('input').simulate('click') 
}) 

テストを実行しているとき、私はしかし、このエラーを取得:

TypeError: Cannot read property 'target' of undefined 

これは私のコンポーネントのために入力されている:

<div className="toggle-btn sm"> 
    <input 
    id={this.props.configs.element} 
    className="toggle-input round" 
    type="checkbox" 
    defaultChecked={ this.props.defaultChecked } 
    onClick={ e => this.onChange(e.target) } 
    > 
    </input> 
</div> 

I だと思いますそのI need to pass an event as the second object to simulate私はやり方がわかりません この。

おかげ

答えて

10

simulate機能は、イベントハンドラに渡されるその他の引数を取ります。あなたはあなたのイベントを模擬することができます。例:

const mockedEvent = { target: {} } 
checkbox.find('input').simulate('click', mockedEvent) 
+0

はい!これは機能します。ありがとう! – SeanPlusPlus

+1

@SeanPlusPlusあなたは歓迎です:) – madox2

関連する問題