Home > Net >  Unexpected value 'HttpTestingController' imported by the module 'DynamicTestModule�
Unexpected value 'HttpTestingController' imported by the module 'DynamicTestModule�

Time:10-15

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

  let service: StudentService;
  let httpclient: HttpClient;
  // let httptestcontroller: HttpTestingController; <--

  beforeEach(async () => {
    await TestBed.configureTestingModule({
      declarations: [ComponentHttpRServiceComponent],
      imports: [HttpClientTestingModule],// HttpTestingController <--
      providers: [StudentService],
    }).compileComponents();
  });

  beforeEach(() => {
    fixture = TestBed.createComponent(ComponentHttpRServiceComponent);
    component = fixture.componentInstance;
    fixture.detectChanges();
    service = TestBed.inject(StudentService);
    // httptestcontroller = TestBed.inject(HttpTestingController); <--
  });

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

  it('httpclient get method', () => {});
});

whenever I add the HttpTestingController inside the imports array, I get an error written as Unexpected value 'HttpTestingController' imported by the module 'DynamicTestModule'. Please add an @NgModule annotation.

how to resolve the above issue?

CodePudding user response:

You don't need to add HttpTestingController anywhere, neither imports nor providers, you just need to add HttpClientTestingModule in imports which you already did.

HttpTestingController is part of HttpClientTestingModule, So you will get the HttpTestingController in the below line, just uncomment it then you are good to go.

httptestcontroller = TestBed.inject(HttpTestingController);

Here is the full configuration

//*Removed extra code for readability
beforeEach(async () => {
  await TestBed.configureTestingModule({
    imports: [HttpClientTestingModule],
  }).compileComponents();
});

beforeEach(() => {
  httptestcontroller = TestBed.inject(HttpTestingController);
});
  • Related