我在爲ES6類創建Chai/Mocha單元測試時遇到了麻煩。這個項目配置正確,使用chai/mocha,ES6,babel,所以這不是問題。 (我可以運行一個虛擬測試,檢查兩個變量是否相同)。僅當我嘗試使用下面的ES6類React組件時,纔會引發該錯誤。我使用命令npm test運行測試。我的package.json配置爲運行該命令時,我跑NPM測試:如何爲ES6類React組件創建Chai/Mocha單元測試?
mocha --compilers js:babel/register file/path/to/spec --recursive
我收到此錯誤:
警告:的setState(...):只能更新一安裝或安裝部件。這通常意味着您在卸載的組件上調用了setState()。這是一個沒有操作。請檢查代碼組件
的ES6類陣營組成,看起來像(顯然不是全部的話):
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
});
});