【发布时间】:2016-08-01 06:18:07
【问题描述】:
我在为 ES6 类创建 Chai/Mocha 单元测试时遇到问题。该项目已正确配置为使用 chai/mocha、ES6、babel,所以这不是问题。 (我可以运行一个虚拟测试来检查两个变量是否相同)。只有当我尝试使用下面的 ES6 类 React 组件时才会抛出该错误。我使用命令 npm test 运行测试。我的 package.json 配置为在我运行 npm test 时运行此命令:
mocha --compilers js:babel/register file/path/to/spec --recursive
我收到此错误:
警告:setState(...):只能更新已安装或已安装的组件。这通常意味着您在未安装的组件上调用了 setState()。这是一个无操作。请检查组件的代码
ES6 类 React 组件看起来像(显然不是全部):
import ...
class Car extends React.Component {
constructor() {
super();
this.state = {
color: ''
}
}
setColor(color) {
this.setState({ color : color });
}
render() {
.......
}
}
测试/规范 JS 文件看起来(大部分是这样的):
import ...
let should = chai.should();
describe('Car Test', () => {
let car;
beforeEach(() => {
car = new Car();
});
it('should be red', () => {
car.setColor('red'); // pretty sure THIS is throwing the error
});
});
【问题讨论】:
标签: unit-testing reactjs ecmascript-6 mocha.js chai