我有一个组件,只需点击一个按钮就可以调用一个助焊剂动作:
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文档有一个(糟糕的)测试商店的例子,但没有关于如何测试组件中使用的动作。
请帮助
答案 0 :(得分:1)
这应该有效:
expect(MessageActions.sendMessage).toBeCalled();
请务必声明MessageActions
var MessageActions = require('path/to/MessageActions');
我怀疑你得到了未定义的错误,因为你已经忘记了“describe”函数中的上述声明。