我无法通过Webpack 4运行我的Jasmine测试套件。在升级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
,但没有一个选项看起来能解决问题。
在这个Webpack的GH issue中指出ECMA模块不应该可写,这在Web上是有意义的,但是难道测试真的没有变通之处吗?
相关软件包版本:
"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",