【发布时间】:2015-11-02 15:24:08
【问题描述】:
我正在尝试测试一个反应组件。
var Component = React.createClass({
componentDidMount: function () {
return this.setState({
name: 'blabla'
});
},
render: function () {
return (
<h1>{this.state.name}</h1>
);
}
});
有没有办法在测试期间模拟 componentDidMount 返回或执行的操作?这样我就可以自己测试它,只测试组件的渲染行为。
谢谢!
【问题讨论】:
-
你不应该嘲笑它。如果你想确保你的组件正常工作,请模拟你作为道具传递给它的所有内容,模拟所有依赖项,但不要模拟组件本身。
-
我不同意。如果 OP 试图编写单元测试来测试其组件内部的功能,那么他想要剔除可能影响这些测试的其他功能一点也不稀奇。 OP - 你使用什么测试框架?根据您的回答,我可能会为您提供解决方案。
-
感谢您的反馈。 @MichaelParker 我正在使用业力和摩卡咖啡。
-
不幸的是,我的解决方案仅适用于 Jasmine,因此如果您使用的是 Mocha,它不适用于您。如果你愿意,我无论如何都可以发布。
-
@MichaelParker 我不介意改用 jasmine,如果您能发布您的代码,我将不胜感激:)
标签: unit-testing testing mocking reactjs