sta*_*lee 5 javascript unit-testing ecmascript-6 babeljs sinon-chai
我正在尝试测试在其父级中调用类方法的ES6类方法.例如:
Polygon.js
class Polygon {
verifyDimensions() {
this.allSidesValid();
}
}
export default Polygon;
Run Code Online (Sandbox Code Playgroud)
Square.js
import Polygon from './Polygon';
class Square extends Polygon {
verifyDimensions() {
super.verifyDimensions();
if( this.height !== this.width ) {
throw new Error( 'Not square' );
}
}
}
Run Code Online (Sandbox Code Playgroud)
我想测试Square的verifyDimensions而不调用Polygon的verifyDimensions.使用sinon/chai进行测试似乎babeljs在创建类时正在制作源方法的副本.这使得它很难被删除.
例如,如果我像这样设置我的测试:
Square.spec.js
beforeEach( () => {
sinon.stub( Polygon.prototype, 'verifyDimensions' );
context.verifyDimensions = Square.prototype.verifyDimensions;
} );
Run Code Online (Sandbox Code Playgroud)
该super.verifyDimensions()仍将是指Polygon.prototype.verifyDimensions,将错误的测试.