У меня есть тестовая установка, тестирующая простой компонент кнопки отправки, который при нажатии должен вызывать статический метод класса, импортированный из другого каталога.
Вот кнопка:
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, что означает, что вместо выбора только макета, он создает полный класс и пытается загрузить все его импорт.
Извините, если этот вопрос довольно неточный, но я действительно новичок в данной теме.
В чем здесь проблема, и какое может быть решение?
Большое спасибо!