What is TestBed in Jasmine

fruitjs picture fruitjs · Oct 6, 2016 · Viewed 11.7k times · Source

I am new to Jasmine with Angular 2, I am frequently working with the TestBed object when writting a Testcase and getting the error:Please call "TestBed.compileComponents" before your test.

How do I solve this error?

@Component({
  moduleId:module.id,
    selector: 'my-app',
    templateUrl: 'app-component.html',

})

Answer

Paul Samsotha picture Paul Samsotha · Oct 6, 2016

Please call "TestBed.compileComponents" before your test

This call is required when testing components using templateUrl

Error: Cannot create the component AppComponent as it was not imported into the testing module!

You need to configure the TestBed before each test, adding any components, modules and services you need for the test. It's just like configuring an regular @NgModule from scratch, but you just add what you need.

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

beforeEach(async(() => {
  TestBed.configureTestingModule({
    declarations: [ AppComponent ],
    providers: [],
    imports: []
  })
  .compileComponents();
}));

it('...', () => {
  let fixture = TestBed.createComponent(AppComponent);
});

See Also