javascript - 如何模拟一个使用 jest 扩展另一个类的 ES6 类
问题描述
我正在尝试模拟扩展另一个自定义类的自定义 es6 类,并且我的单元测试在尝试测试其中一个类方法时抛出错误。我已经尝试更改设置以完全解决类模拟,但也没有运气。我更愿意以“正确”的方式实施这些测试,因此我希望能得到一些帮助以使此配置正常工作。
我已经尝试按照 jest docs https://jestjs.io/docs/en/23.x/es6-class-mocks中的步骤进行操作,但是在运行 jest.mock("path/to/class") 后出现错误我尝试调用 Class.mockClear()
// GenericWorker.js
export default class GenericWorker {
constructor(opt) {
...initialize worker with opt
}
subscribe() {
...do stuff
}
}
// SpecializedWorker.js
export default class SpecializedWorker extends GenericWorker {
onSubscribe() {
this.subscribe();
}
}
// __tests__/SpecializedWorker.spec.js
import SpecializedWorker from ('../SpecializedWorker');
jest.mock('../SpecializedWorker');
describ('SpecializedWorker', () => {
beforeEach(() => {
SpecializedWorker.mockClear();
});
it('should call onCallback', () => {
...testing stuff
});
});
我的测试没有通过 beforeEach() 步骤,并声称 SpecializedWorker 上没有方法“mockClear()”
我正在使用节点 v.6.11 和 jest v.23.6.0
解决方案
推荐阅读
- wso2esb - 如何在 WSO2IS 中设置访问令牌而不过期
- python - cs50ai tic tac toe minimax TypeError: '>' 在 'NoneType' 和 'float' 的实例之间不支持
- excel - Excel 中的缺勤报告
- r - 使用 ggplot2 打印带有 '\n' 的文本
- android - 如何正确理解 RecyclerView
- assembly - 汉明距离函数
- android - 如何在android中保存相机点击的图片?
- javascript - 无法在flutter webview中使用带有脚本的html
- html - 使父高度适合内容高度(CSS)
- firebase - 谷歌登录后如何在另一个页面上导航