Методы тестирования с использованием Jest - PullRequest
0 голосов
/ 04 июля 2019

Я новичок в React и Jest, и я пытаюсь протестировать свою функцию goBack(), но каждый раз, когда я использую jest.spyOn, мне постоянно говорят, что это не функция. У кого-нибудь есть решение для этого? Я использовал spyOn метод, чтобы попытаться шпионить за методом, но он продолжает давать мне неопределенный Вот мой компонент класса:

class Contribute extends React.Component {
    goBack = () => {
        this.props.history.goBack();
    };

    render() {
        return (
            <div className="no-navbar">
                <div className="col-lg-6 pledge-pane pledge-pane-lg" id="imageMobile">
                    <div className="mx-2 container" id="back-button-mobile">
                        <button className="btn btn-outline-secondary btn-circle" onClick={this.goBack}>
                            <i className="fa fa-arrow-left"> </i>
                        </button>
                    </div>`

Вот мой тестовый файл для функции goBack:

it('test onClick function', () => {
        let props = {
            history:{
                goBack: jest.fn()
            }
        };
        const spy = jest.spyOn(Contribute.prototype, 'goBack');
        const wrapper = mount(<Contribute {...props}/>);
        Contribute.find('#back-button-mobile').simulate('click', {
            preventDefault: () => {
            }
        });
        expect(spy).toHaveBeenCalled();
        console.log(spy);
    });

Когда я запускаю свой тестовый файл, это результат:

Error: Cannot spy the goBack property because it is not a function; undefined given instead
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...