我試圖用sinon和es2016取出一個超級調用,但我沒有多少運氣。任何想法爲什麼這不起作用?ES2016類,Sinon存根構造函數
運行節點6.2.2,這可能是它的類/構造函數的實現問題。
.babelrc文件:
{
"presets": [
"es2016"
],
"plugins": [
"transform-es2015-modules-commonjs",
"transform-async-to-generator"
]
}
測試:
import sinon from 'sinon';
class Foo {
constructor(message) {
console.log(message)
}
}
class Bar extends Foo {
constructor() {
super('test');
}
}
describe('Example',() => {
it('should stub super.constructor call',() => {
sinon.stub(Foo.prototype, 'constructor');
new Bar();
sinon.assert.calledOnce(Foo.prototype.constructor);
});
});
結果:
test
AssertError: expected constructor to be called once but was called 0 times
at Object.fail (node_modules\sinon\lib\sinon\assert.js:110:29)
at failAssertion (node_modules\sinon\lib\sinon\assert.js:69:24)
at Object.assert.(anonymous function) [as calledOnce] (node_modules\sinon\lib\sinon\assert.js:94:21)
at Context.it (/test/classtest.spec.js:21:18)
注意:這個問題似乎只發生了構造函數。我可以窺探從父類繼承的方法,沒有任何問題。
有趣的,這並沒有爲我工作: 'Asse田:預計0至等於1' - 我抄你上面的例子。 – klyd
嗯...這很有趣,更新了新的變化..認爲這是一個解決方法:) – anoop
你的新例子似乎仍然不能用我的節點6.2.2和babel es2016預設。 – klyd