在流程中编写规范:如何在Mocha中存根方法?

时间:2018-08-17 02:05:38

标签: javascript unit-testing mocha flowtype

A类具有只读属性bb具有方法c,在A#methodF中,有一条语句:

const v = await this.b.c();

在A#methodF的规范中,我想存根c

a.b.c = sinon.stub().resolves({myDesiredResult}) (其中aA的实例)

但是flow check给出:

  

无法将sinon.stub()。resolves(...)分配给   a.b.c因为属性c   是不可写的。

问题:如何让c返回我想要的结果?

1 个答案:

答案 0 :(得分:1)

您的问题是您没有正确使用sinon.stub。当您确实想将存根分配给新变量时,尝试将a.b.c设置为新值(存根)。 sinon.stub的语法是这样的(docs):

var stub = sinon.stub(object, "method");

所以在您的情况下:

var cStub = sinon.stub(a.b, "c").resolves({myDesiredResult})