我无法让我的测试 jasmine 测试套件与 webpack 4 一起运行。升级 webpack 后,几乎每个测试都会出现以下错误:
Error: <spyOn> : getField is not declared writable or has no setter
这是因为我们为简单功能创建间谍的常见模式是:
import * as mod from 'my/module';
//...
const funcSpy = spyOn(mod, 'myFunc');
我玩过module.rules[].type
但似乎没有一个选项能解决问题。
这个网页包GH issue https://github.com/webpack/webpack/issues/5834表明 ECMA 模块是不可写的,这对于网络来说是有意义的,但是真的没有测试的解决方法吗?
相关软件包版本:
"jasmine-core": "2.6.4",
"typescript": "2.5.3",
"webpack": "4.1.1",
"webpack-cli": "^2.0.12",
"karma": "^0.13.22",
"karma-jasmine": "^1.1.0",
"karma-webpack": "^2.0.13",
There's spyOnProperty
它允许通过设置将属性视为只读accessType
论证'get'
.
你的设置看起来像
import * as mod from 'my/module';
//...
const funcSpy = jasmine.createSpy('myFunc').and.returnValue('myMockReturnValue');
spyOnProperty(mod, 'myFunc', 'get').and.returnValue(funcSpy);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)