0

我有一个组件,单击按钮即可调用通量操作:

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 文档有一个测试商店的(蹩脚的)示例,但没有关于如何测试组件中使用的操作。

请提供任何帮助

4

1 回答 1

1

这应该有效:

expect(MessageActions.sendMessage).toBeCalled();

只要确保声明MessageActions

var MessageActions = require('path/to/MessageActions');

我怀疑您收到未定义的错误,因为您忘记了“描述”函数中的上述声明。

于 2015-02-18T22:55:39.710 回答