【问题标题】:How do I test a ReactJS Flux Action (in Jest) from the component test?如何从组件测试中测试 ReactJS Flux Action(在 Jest 中)?
【发布时间】:2015-04-19 04:12:42
【问题描述】:

我有一个组件,点击一个按钮就会调用一个flux action:

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

请帮忙

【问题讨论】:

    标签: reactjs reactjs-flux flux jestjs


    【解决方案1】:

    这应该可行:

    expect(MessageActions.sendMessage).toBeCalled();

    只要确保声明MessageActions

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

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

    【讨论】:

    猜你喜欢
    • 2020-06-12
    • 1970-01-01
    • 2017-01-12
    • 1970-01-01
    • 2019-05-01
    • 2016-10-09
    • 2018-07-06
    • 2019-07-20
    • 2016-08-08
    相关资源
    最近更新 更多