2017-12-29 41 views
0

jestを使用してblur()が呼び出された場合、どうすればテストできますか?そのblur()が呼び出されたことをテストするには?

これは私の関数である:

blurOnEnter (event) { 
    if (event.keyCode === 13 && !event.shiftKey) event.target.blur() 
} 

そして、これは私がそれをテストする方法をですが、私は私の期待の文を処理する方法がわからない:

it('blurOnEnter() should blur target input field',() => { 
    const blur = jest.fn() 
    wrapper = shallow(<Component />) 
    wrapper.instance().blurOnEnter({ 
    keyCode: 13, 
    target: { blur } 
    }) 
    expect(blur.calls.length).toBe(1) // TypeError: Cannot read property 'length' of undefined 
}) 

私が得るのはなぜ例外TypeError Cannot read property 'length' of undefined

+0

あなたにはどんな種類のタグが付いていますか – orangespark

+0

それはテキストエリアの要素です – user3142695

+0

答えがうまくいけば教えてください:) – orangespark

答えて

0

方法について:

it('blurOnEnter() should blur target input field',() => { 
    const blur = jest.fn() 
    wrapper = shallow(<Component />) 
    wrapper.instance().blurOnEnter({ 
    keyCode: 13, 
    target: { "blur": blur } // see here! 
    }) 
    expect(blur.mock.calls.length).toBe(1) // and here 
}) 

jest mocking docs(http://facebook.github.io/jest/docs/en/mock-functions.html#content)によると、jest mocksはモックプロパティを持っていますが、元のコードではそれを使用していません。

関連する問題