React, TestUtils 및 Jest를 사용하여 양식 submit
이벤트를 테스트하는 데 문제가 있습니다.시험 반응 양식 제출 Jest & TestUtils로
DOM 요소를 <form>
렌더링하는 구성 요소가 있습니다. 동일한 구성 요소에는 onSubmit
이벤트를 처리하고 명령문을 기록하는 메소드도 있습니다. 내 목표는 onSubmit
핸들러를 조롱하고 호출되는 것을 주장하는 것입니다.
폼 component.cjsx
module.exports = React.createClass
# Handle form submissions
handleSubmit: (e) ->
console.log 'Make async call'
# Render a form
render: ->
<form onSubmit={@handleSubmit}>
<input type="submit" />
</form>
__tests __/test-form-component.coffee
jest
.dontMock '../form-component'
React = require 'react/addons'
TestUtils = React.addons.TestUtils
FormComponent = require '../form-component'
describe 'FormComponent', ->
it 'creates a log statement upon form submission', ->
# Render a FormComponent into the dom
formInstance = TestUtils.renderIntoDocument(<FormComponent />)
# Mock the `handleSubmit` method
formInstance.handleSubmit = jest.genMockFunction()
# Simulate a `submit` event on the form
TestUtils.Simulate.submit(formInstance)
# TestUtils.Simulate.submit(formInstance.getDOMNode()) ???
# I would have expected the mocked function to have been called
# What gives?!
expect(formInstance.handleSubmit).toBeCalled()
관련 질문 :