Enzyme Jest TS - фиктивный файл не собирается статическим методом - PullRequest
0 голосов
/ 29 июня 2019

У меня есть тестовая установка, тестирующая простой компонент кнопки отправки, который при нажатии должен вызывать статический метод класса, импортированный из другого каталога.

Вот кнопка:

import React from 'react';
import { IProps } from './form.submit';
import Feedback from 'Services/feedback';

const NextButton = (props: IProps) => (
    <button
        onClick={Feedback.next}
        className="col-2 btn btn-success"
        type="submit">
        Next
    </button>
);

Я хотел убедиться в тесте, что метод Feedback.next (который является статическим) будет запускаться при каждом нажатии кнопки. Проблема в том, что к классу Feedback прикреплены другие зависимости (импортируется много классов, которые в какой-то момент требуют редукции и хранения данных), что со временем приведет к ошибкам при поиске модулей.

Чтобы опустить это, я попытался добавить макет папки в ту же папку, что и класс Feedback.

class Feedback {
    static next() {}; //The method is originally void
}

export default Feedback;

И в моем тесте добавлено

import Feedback from 'Services/feedback';
jest.mock('Services/feedback');

Чтобы позже проверить это так:

it('should call next on click', () => {
    button.simulate('click'); 
    expect(Feedback.next).toHaveBeenCalledTimes(1);
})

Проблема в том, что при запуске теста я все еще получаю

TypeError: Невозможно прочитать свойство 'records' из неопределенного

Ссылка на файл, используемый и импортируемый, используемый другим импортом класса Feedback, что означает, что вместо выбора только макета, он создает полный класс и пытается загрузить все его импорт.

Извините, если этот вопрос довольно неточный, но я действительно новичок в данной теме.

В чем здесь проблема, и какое может быть решение? Большое спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...