javascript - 在流程中编写规范:如何在 mocha 中存根方法?
问题描述
A 类有一个只读属性b
,b
有方法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
返回我想要的结果?
解决方案
您的问题是您没有正确使用 sinon.stub。当您真的想将存根分配给新变量时,您正试图将 abc 设置为新值(存根)。sinon.stub 的语法是这样的(文档):
var stub = sinon.stub(object, "method");
所以在你的情况下:
var cStub = sinon.stub(a.b, "c").resolves({myDesiredResult})
推荐阅读
- php - 使用 fastcgi_finish_request 停止 php 运行后台
- javascript - 在Javascript中按值从数组中删除元素
- django - 使用 django-tables2 和 django-filter 在上下文中缺少 filterset 对象
- python - 熊猫弦噪声消除
- php - PHP 从输入中打印变量
- javascript - 将 JSON 文件加载到 JavaScript(可能没有 JQuery)
- javascript - HTML YouTube iframe 播放器模糊,但视频本身很好
- android - Ionic 3 Deeplinking - 从 URL 启动应用程序
- angular - Angular 6 定义全局 scss 标题样式 - Bootstrap
- javascript - 如何确定新的 DOM 是否使用 selenium/java/javascript?