当类有静态数据时,Angular 15.1单元测试失败



我有一个运行良好的Angular 15.0项目,直到我把它升级到Angular 15.1。

例如,以下代码在运行单元测试时失败:

@Component({
selector: 'mad-zoom-control',
templateUrl: './zoom-control.component.html',
styleUrls: ['./zoom-control.component.scss']
})
export class ZoomControlComponent extends MadComponent implements OnInit, OnChanges, AfterViewInit {
@Input() conserveRatio          = true;
@Input() dropupPredefinedOption = true;
@Input() showPredefined         = true;
@Input() showZoomFactor         = true;
@Input() zone: Zone             = null;
@Output() readonly zoomChanged = new EventEmitter<boolean>();
// Predefined Zoom -> Predefined Zoom Label
static PredefinedZoomEnumMapList = [
['full',        MAD_FULL],
['center',      MAD_MenuPositionEnum_eCENTER],
['left',        MAD_ZoneJustifyXEnum_eLEFT],
['right',       MAD_ZoneJustifyXEnum_eRIGHT],
['top',         MAD_ZoneJustifyXEnum_eTOP],
['bottom',      MAD_ZoneJustifyXEnum_eBOTTOM],
['topLeft',     MAD_MenuPositionEnum_eTOP_LEFT],
['topRight',    MAD_MenuPositionEnum_eTOP_RIGHT],
['bottomLeft',  MAD_MenuPositionEnum_eBOTTOM_LEFT],
['bottomRight', MAD_MenuPositionEnum_eBOTTOM_RIGHT],
];
static PredefinedZoomEnumLabelList = ZoomControlComponent.PredefinedZoomEnumMapList.map((zoneAspect) => zoneAspect[1]);

问题是:

Chrome 109.0.0.0 (Mac OS 10.15.7) ERROR
An error was thrown in afterAll
Uncaught TypeError: Cannot read properties of undefined (reading 'PredefinedZoomEnumMapList')
TypeError: Cannot read properties of undefined (reading 'PredefinedZoomEnumMapList')
at http://localhost:9876/_karma_webpack_/webpack:/src/app/widgets/zoom-control/zoom-control.component.ts:60:61
at Module.13225 (http://localhost:9876/_karma_webpack_/webpack:/src/app/widgets/zoom-control/zoom-control.component.ts:60:122)
...

我没有看到Angular或Angular CLI Github仓库中有任何开放的问题。

欢迎任何帮助。

我运行了yarn test-coverage,只是希望没有错误。

这是一个等待修复的已知错误。调查报告说,这种情况发生在15.1.0-rc.0

之后。

最新更新