0

我正在尝试运行我的测试,但在使用 Jest 测试 nx(mono-repo) 角度测试时出现此错误

Can't resolve all parameters for ApplicationModule: (?).

      at syntaxError (../packages/compiler/src/util.ts:100:17)
      at CompileMetadataResolver._getDependenciesMetadata ......  

登录-form.componenet.spec.ts

import { LoginFormComponent } from './login-form.component';
import { ComponentFixture, async, TestBed } from '@angular/core/testing';
import { FormBuilder, ReactiveFormsModule, FormsModule } from '@angular/forms';
import { CommonModule } from '@angular/common';

import {
  BrowserDynamicTestingModule,
  platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing';

describe('Testing LoginForm', () => {
  let component: LoginFormComponent;
  let fixture: ComponentFixture<LoginFormComponent>;

  // create new instance of FormBuilder
  const formBuilder: FormBuilder = new FormBuilder();

  beforeEach(() => {

    TestBed.configureTestingModule({
      declarations: [LoginFormComponent],
      imports: [FormsModule, ReactiveFormsModule, CommonModule],
      providers: [{ provide: FormBuilder, useValue: formBuilder }]
    });

    fixture = TestBed.createComponent(LoginFormComponent);
    component = fixture.componentInstance;
  });

  test('should be created', () => {
    expect(component).toBeTruthy();
  });
});

测试设置.ts

import 'jest-preset-angular';

jest.config.ts

module.exports = {
  testMatch: ['**/+(*.)+(spec|test).+(ts|js)?(x)'],
  transform: {
    '^.+\\.(ts|js|html)$': 'ts-jest'
  },
  resolver: '@nrwl/jest/plugins/resolver',
  moduleFileExtensions: ['ts', 'js', 'html'],
  coverageReporters: ['html'],
  moduleNameMapper: {
    '@neural/(.*)': '<rootDir>/libs/$1/src/index.ts',    
  }
};

版本

Angular: 8.2.14
jest: 26.0.1
nrwl: 8.8.2
jest-preset-angular: 7.1.1

Login-form Login-form.component.ts的构造函数参数

constructor(private fb: FormBuilder) {
    this.loginForm = this.fb.group({
      email: ['', Validators.compose([Validators.required, Validators.email])],
      password: ['', Validators.compose([Validators.required])]
    });
  }

如果您需要更多信息来找出问题所在,请告诉我。

4

0 回答 0