Angular中的玩笑问题-UnhandledPromiseRejectionWarning zone.js

问题描述

当前尝试在Angular中执行Jest。从zoneDelegate获取未处理的承诺错误。似乎无法解决。试图将zone.js更新为版本11,但这似乎会产生新的问题。

我尝试将async添加到spec.ts中,但这似乎无法解决问题。

在我当前的spec.ts

import { async,ComponentFixture,TestBed } from '@angular/core/testing';

import { ForOthersDashboardComponent } from './for-others-dashboard.component';

describe('ForOthersDashboardComponent',() => {
  let component: ForOthersDashboardComponent;
  let fixture: ComponentFixture<ForOthersDashboardComponent>;

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      declarations: [ ForOthersDashboardComponent ]
    })
    .compileComponents();
  }));

  beforeEach(() => {
    fixture = TestBed.createComponent(ForOthersDashboardComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
  });

  it('should create',() => {
    expect(component).toBeTruthy();
  });
});

还有我的jest.config

const { pathsToModuleNameMapper } = require('ts-jest/utils');
const { compilerOptions } = require('./tsconfig');

module.exports = {
  preset: 'jest-preset-angular',roots: ['<rootDir>/src/'],testMatch: ['**/+(*.)+(spec).+(ts)'],setupFilesAfterEnv: ['<rootDir>/src/test.ts'],collectCoverage: true,coverageReporters: ['html'],coverageDirectory: 'coverage/my-app',globals: {
    'ts-jest': {
      isolatedModules: true,astTransformers: {
        before: [
          'jest-preset-angular/build/InlineFilesTransformer','jest-preset-angular/build/StripStylesTransformer',],},moduleNameMapper: pathsToModuleNameMapper(compilerOptions.paths || {},{
    prefix: '<rootDir>/'
  })
};

screenshot

编辑

该错误似乎仅在导入我需要的模块的规范文件中发生。因此,例如下面的规格文件。它正在尝试从node_modules中加载无法找到的内容。我通过设置模块路径尝试了其他解决方案,但这似乎无法解决此问题。

import { RequiredModule } from 'required-module-lib';

describe('DashboardComponent',() => {
  let component: DashboardComponent;
  let fixture: ComponentFixture<DashboardComponent>;

  beforeEach(async(() => {
    TestBed.configureTestingModule({
      imports: [
        RequiredModule
      ],declarations: [
        DashboardComponent
      ]
    })
    .compileComponents()
    .then(() => {
      fixture = TestBed.createComponent(DashboardComponent);
      component = fixture.componentInstance;
      fixture.detectChanges();
    })
    .catch(err => console.error(err));
  }));

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)