我正在尝试使用ManagementClient.prototype.createUser
对nodeJS auth0 lib SinonJS
进行存根。
问题是createUser
是使用Object.defineProperty
由configurable: false
定义的吸气剂,因此使用sinon.replaceGetter()
或sinon.stub(object, 'method').get(fn)
会抛出Cannot redeclare property
。我在他们的Github仓库上打开了an issue,有人告诉我sinon.stub(ManagementClient.prototype, 'createUser', fn)
在工作,但问题是自v3.0.0
起,该语法已被弃用。我尝试使用sinon.stub(ManagementClient.prototype, 'createUser').callsFake(fn)
来代替旧语法,但是它不能像以前的语法那样工作。这是runkit,显示了它的作用。
我的问题是:即使声明为configurable: false
,我还是有办法对吸气剂进行打桩还是被搞砸了?我似乎找不到办法。
我已经问过他们是否考虑更新其Object.defineProperty
呼叫以设置configurable: true
但无济于事。
答案 0 :(得分:0)
似乎无法覆盖用configuration: false
定义的属性,因此我最终围绕Auth0
SDK制作了自己的包装,并对其进行存根而不是SDK本身。