Я тестирую модуль React 16, который определяет обратный вызов и передает его как свойство следующему компоненту, который вызывается при срабатывании события click.
import React from 'react'
function OuterComponent() {
const handleClick = useCallback(() => {
openDialog() // <--- This code is inaccessible from my "OuterComponent.test.js" unit test
}
return <MyDialog clickHandler={handleClick} />
}
export default OuterComponent
Я ищу 100% тестовое покрытие и хотел бы смоделировать все другие компоненты / функции, используя jest, которые не являются частью компонента "OuterComponent".
Проблема, с которой я столкнулся, заключается в том, что я не могу высмеять компонент MyDialog , чтобы он вызывал функцию handleClick .
Я также пытался смоделировать компонент, используя этот фрагмент, но он все еще пытается загрузить все импортированные файлы из MyDialog
jest.doMock('components/MyDialog', () => {
return () => () => <div />
})
//... other mocks along with **openDialog**
//...and in my describe/it...
MyDialog.mockImplementation(() => {})
OuterComponent().handleClick()
expect(openDialog).toHaveBeenCalled()
Я надеялся, что я может отобразить пустой div для MyDialog и просто вызвать функцию handleClick , чтобы проверить его. Кто-нибудь знает, что я могу делать не так, или есть другие идеи, как это проверить?