У меня есть компонент, который по нажатию кнопки вызывает действие магнитного потока:Как проверить действие ReactJS Flux Action (в Jest) из теста компонента?
onSend(event) {
MessageActions.sendMessage(this.state.currentMessage);
};
Теперь я хочу тест, чтобы в основном быть в состоянии имитировать нажатие кнопки (я знаю, как сделать это).
И на кнопке щелкните, чтобы проверить, вызвана ли эта функция MessageActions.sendMessage с заданной строкой.
Как получить доступ к MessageActions из моего теста?
Объект, который я тестирую, называется ChatMessage, но MessageActions определяется вне кода React.CreateClass.
Я пытался вещи в моем тесте, как:
var messageActions = require('myactions');
expect(messageActions.sendMessage).toBeCalled();
и
expect(ChatMessage.MessageActions.sendMessage).toBeCalled();
Но ничего не работает, как это просто говорит MessageActions неопределен.
Документы ReactJS имеют (дерьмовый) пример тестирования магазина, но ничего о том, как вы проверяете Действия, используемые в вашем компоненте.
Любая помощь, пожалуйста,
Привет, я уже пробовал то, что вы предлагаете. Если вы посмотрите на код в репозитории github, возможно, вы увидите, что я делаю что-то неправильно ... Class = https://raw.githubusercontent.com/thestonefox/react-chat/development/scripts/components/chat_message .js и тест для него = https://raw.githubusercontent.com/thestonefox/react-chat/development/__tests__/scripts/components/chat_message-test.js – TheStoneFox
Ничего, я понимаю, что вы имеете в виду сейчас, даже React = require() должно быть в beforeEach, иначе это не сработает! Узнать что-то новое! :) – TheStoneFox