Я написал тестовый пример для вызова метода onBlur , но получаю сообщение об ошибке, когда пытаюсь его подтвердить. Вот приведенный выше тестовый пример.

 it("call the handlingBlurEmail method", () ={amp}gt; { const wrapper = mount( {amp}lt;App childRef={() ={amp}gt; {}} /{amp}gt; ); const comp = wrapper.find({ id: "email" }).first(); comp.prop("onBlur")({ target: { id: "email", value: "test@gmail.com" } }); expect( wrapper .find("AccountForm") .state() .onBlur() ).toHaveBeenCalled(); }); 

и функция, для которой я пишу тестовый случай

  mailReference = React.createRef(); handlingEmailBlur = events ={amp}gt; { this.mailReference.current.validate(events.target.value); }; render = () { ...... return ( {amp}lt;div className="Form1"{amp}gt; onBlur={this.handlingEmailBlur} {amp}lt;/div{amp}gt; ) ..... } 

Пожалуйста, дайте мне знать, как добавить оператор assert для вызова onBlur() в приведенном выше тесте.

Вот решение для модульного тестирования:

index.tsx :

 import React, { Component } from 'react'; class App extends Component { mailReference = React.createRef(); handlingEmailBlur = (events) ={amp}gt; { this.mailReference.current.validate(events.target.value); }; render() { return ( {amp}lt;div className="Form1" onBlur={this.handlingEmailBlur}{amp}gt; some component {amp}lt;/div{amp}gt; ); } } export default App; 

index.spec.tsx :

 import App from './index'; import { mount } from 'enzyme'; import React from 'react'; describe('59455504', () ={amp}gt; { afterEach(() ={amp}gt; { jest.restoreAllMocks(); }); it('call the handlingBlurEmail method', () ={amp}gt; { const mailReference = { current: { validate: jest.fn() } }; jest.spyOn(React, 'createRef').mockReturnValue(mailReference); const wrapper = mount({amp}lt;App childRef={() ={amp}gt; {}} /{amp}gt;); const mEvent = { target: { id: 'email', value: 'test@gmail.com' }, }; wrapper.find('.Form1').prop('onBlur')(mEvent); expect(mailReference.current.validate).toBeCalledWith(mEvent.target.value); }); }); 

Результат модульного теста со 100% покрытием:

  PASS src/stackoverflow/59455504/index.spec.jsx (8.328s) 59455504 ✓ call the handlingBlurEmail method (40ms) -----------|----------|----------|----------|----------|-------------------| File | % Stmts | % Branch | % Funcs | % Lines | Uncovered Line #s | -----------|----------|----------|----------|----------|-------------------| All files | 100 | 100 | 100 | 100 | | index.jsx | 100 | 100 | 100 | 100 | | -----------|----------|----------|----------|----------|-------------------| Test Suites: 1 passed, 1 total Tests: 1 passed, 1 total Snapshots: 0 total Time: 9.769s 

Исходный код: https://github.com/mrdulin/jest-codelab/tree/master/src/stackoverflow/59455504