首页 > 解决方案 > 在流程中编写规范:如何在 mocha 中存根方法?

问题描述

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

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

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

a.b.c = sinon.stub().resolves({myDesiredResult}) (哪里a是 的一个实例A

flow check给出:

无法将 sinon.stub().resolves(...) 分配给 abc,因为属性 c 不可写。

问题:我怎样才能c返回我想要的结果?

标签: javascriptunit-testingmocha.jsflowtype

解决方案


您的问题是您没有正确使用 sinon.stub。当您真的想将存根分配给新变量时,您正试图将 abc 设置为新值(存根)。sinon.stub 的语法是这样的(文档):

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

所以在你的情况下:

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


推荐阅读