【问题标题】:Testing Material-UI with jest is slow用 jest 测试 Material-UI 很慢
【发布时间】:2015-12-30 09:03:04
【问题描述】:

我在我的应用程序中使用 reactjs 和 material-ui。对于单元测试,我使用 jest。

版本:

react: 0.13.3
material-ui: 0.12.1
jest-cli: 0.5.8

如果我在 React.Component 中使用 material-ui,我的笑话测试真的很慢。

示例 1:

var React    = require('react');

module.exports = React.createClass({

    render: function () {
        return (<div></div>);
    }

});

测试需要 0.5 秒

示例 2:

var React    = require('react');
var Material = require('material-ui');

module.exports = React.createClass({

    render: function () {
        return (<div></div>);
    }

});

测试需要 25 秒

到目前为止我尝试过/经历过的事情:

  • 如果我关闭/打开模拟
    并没有什么不同 材料-ui。
  • 是否使用 material-ui 组件并不重要。要求似乎是瓶颈。
  • 如果使用了两种不同的预处理器:react-tools、babel-jest

有人有同样的问题吗? 或者更好的解决方案?

【问题讨论】:

  • 您是否尝试过仅拉入您在material-ui 中使用的组件?例如require('material-ui/lib/card');
  • 我喜欢这个主意。我使用了类似的方法。我开始模拟我在自己的组件中使用的 material-ui 组件。 jest.setMock('material-ui', { TextField: &lt;MOCK&gt; })

标签: node.js unit-testing reactjs jestjs material-ui


【解决方案1】:

使用业力和茉莉花。

我们遇到了同样的问题,Jest 总体上很慢,所以我们最终切换到 Karma/Jasmine。我认为 Facebook 团队对 Jest 有点沉默,所以我不太确定它的未来。

【讨论】:

  • 我们也有同样的问题。简单的测试最多需要 2 秒。不过,我喜欢嘲笑的概念。茉莉花/业力是否有一个很好的模拟库?我现在才重新布线,我不喜欢它,模拟所有依赖项相当耗时。
  • 我认为 jasmine 应该已经足够好了 - 你可以监视函数并调用实际代码、调用假模拟函数或什么都不做。
猜你喜欢
  • 1970-01-01
  • 2020-05-10
  • 2019-07-24
  • 2021-10-29
  • 2017-09-04
  • 2020-11-28
  • 1970-01-01
  • 2021-01-31
  • 2020-09-04
相关资源
最近更新 更多